XSS过滤的绕过
脚本标签
如果script被过滤的话,可以使用伪协议的方法:
通过HTML编码绕过过滤(也可以使用十进制r,十六进制Ĕ)
使用HTML编码,在进一步处理属性值的时候,浏览器会对其进行HTML解码:
如果存在两次URL解码
可以通过构造:
%253cimg%20οnerrοr=alert(1)%20src=a%253e
第一次URL解码以后:
%3cimg οnerrοr=alert(1) src=a%3e
第二次URL解码以后:
字符集绕过
UTF-7,US-ASCII,UTF-16(这种方法只有在浏览器支持所用的字符集才可以,或者你可以控制HTTPContent-Type消息头)
使用js转义
Unicode转义可以用于表示js关键词中的字符
通过eval命令来动态构建字符串
替代eval的方法
``
---------------------