XSS跨站绕过过滤的思路与方法

httponly绕过

什么是httponly

在cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击。注意并不能防止xss漏洞,只能是防止cookie被盗取。

绕过httponly

绕过 httponly:
利用账号密码进入
1、若浏览器未保存帐号密码:需要 xss 产生登录地址(前提是XSS漏洞需要存在于登录框),利用表单劫持(相当于发一份给跨站平台,一份发给服务器验证)。
2、若浏览器保存帐号密码:浏览器读取帐号密码。
如何绕过httponly:8:00

XSS跨站代码绕过(偏教程演示–配合代码审计)

靶场练习(重点):37:00

WAF绕过(以安全狗为例)

常见WAF绕过思路

1、标签语法替换

1
2
<script>  <a>  <p>  <img>  <body> <button>  <var>  <div>  <iframe>  <object> <input> 
<textarea> <keygen> <frameset> <embed> <svg> <math> <video> <audio> <select>

标签语法替换演示二:12:00
2、特殊符号干扰(#)–/在js内代表一个语句的结束
特殊符号干扰演示一:1:30
3、提交方式更改–get、post、cookie等提交方式
4、垃圾数据溢出
5、加密解密算法
6、结合其他漏洞绕过–XSStrike自动化实现、burp抓包用字典跑

相关阅读资料

1、XSS在线fuzz工具:https://xssfuzzer.com/fuzzer.html (自动生成payload)
2、WAF攻防笔记:https://www.yuque.com/office/yuque/0/2023/pdf/34523688/1696908471868-e27eb882-ee6f-46d2-8763-c5a9d9d0047b.pdf?from=https%3A%2F%2Fwww.yuque.com%2Fweiker%2Fxiaodi%2Fdmabuqh96629o9yp
3、XSStrike强大的自动化工具:https://github.com/s0md3v/XSStrike
4、绕过XSS检测详解以及payload参考:https://bbs.kanxue.com/thread-250852.htm
4、fuzz-XSS字典:https://github.com/TheKingOfDuck/fuzzDicts

相关防御XSS思路

开启 httponly,输入过滤,输出过滤等
PHP:http://www.zuimoge.com/212.html
JAVA:https://www.cnblogs.com/baixiansheng/p/9001522.html

little 总结

1、一般来说网站存在对于XSS跨站漏洞的代码过滤,我们如何考虑绕过这些代码过滤呢?其实同前面的SQL注入以及文件上传的思路一样,考虑大小写、有没有循环过滤、双写、编码、coookie、post提交方式等的过滤方式,要懂得发散思维。(白盒环境下好测试)
2、听课时,提到了来源referer这个过滤验证。在XSS里关联性并不大,但与CRSF、SSRF息息相关。下列是迪总对于这个的一点形象的解释:
对于来源检测的解释:1:18:00
图一