通过图片触发XssPayload从而绕过WAF
假设如果XSS的PayLoad被拦截,那么把XSS的PayLoad放到载体里面,这样会不会Bypass呢?
一个正常的gif
图片加上一个XSS的PayLoad,然后通过脚本将XssPayload
注入到图片里面!
图片xss的利用方法
在使用类似ueditor这样的网页编辑器时,由于编辑器本身支持的源码编辑功能,如果过滤的不够完善,攻击者可以通过写入js来执行脚本语句,达成存储型xss的效果。
当然,如今的编辑器安全方面做的都已经相当不错,能够自动触发的恶意脚本已经是很难写入了,剩下还比较容易受控的,就是点击触发的外部链接了。前段时间,我就在尝试利用了外部链接进行csrf时,小伙伴提醒我可以尝试一下图片xss的方法,该方法和恶意外部链接的手段差不多,就是在编辑器引入外部图片的src地址时,修改为一个恶意地址,由于图片自动加载的特性,审核人员在查看该页面时会总动触发该请求,如果该请求是一个有效的csrf,就可以在无声无息间~~~~。
感觉不算是一个漏洞,实际的利用还是要结合其他诸如csrf漏洞,而且由于是在img标签的src里,如果请求的页面里有什么js脚本也不会被执行,所以顶多只能搞搞get类型的csrf,所以貌似危害不是很大,也不太好处理。后来小伙伴又提出了jsonp劫持的概念,表示没有研究过,貌似和csrf差不大多。
为了探究它还能做什么,我稍稍研究了一番。简单记录一下:
python jsingif.py -i hack.gif "javascript:alert('Power_Liu')"
然后用记事本打开图片看看:
可以看出:图片末尾有这样一串代码:*/=1;javascript:alert('Power_Liu');
为了验证这个XSS
是否生效,这里用到Html
测试代码:
<html>
<head>
<title>Power_Liu—Test-XSS</title>
</head>
<body>
<img src="hack.gif"\>
<script src= "hack.gif"> </script>
</body>
</html>
</html>
打开后的testxss.html:
script标签把图片当成JavaScript代码执行了,因为我们把乱码的数据通过多行注释/**/给注释掉了,所以JavaScript会执行我们的PayLoad,这样可以绕过WAF