主页 > 网络知识 > 绕过WAF的常见Web漏洞利用分析

绕过WAF的常见Web漏洞利用分析

本文以最新版安全狗为例,总结一下我个人掌握的一些绕过WAF进行常见WEB漏洞利用的方法,希望能起到抛砖引玉的效果。如果师傅们有更好的方法,烦请不吝赐教。

PS:本文仅用于技术研究与讨论,严禁用于任何非法用途,违者后果自负,作者与平台不承担任何责任

测试环境

PHPStudy(PHP5.4.45+Apache+MySQL5.5.53)+最新版安全狗(4.0.28330)

1605062263_5fab4e776a2e27de3ad6b.png!small?1605062263492

 

 

1605062267_5fab4e7ba544d61d10e26.png!small?1605062267707

 

靶场使用DVWA:

SQL注入 判断是否存在注入 方法一

and 1=http://www.52bug.cn/hkjs/1被拦截

 

1605062279_5fab4e87e85d4a8d50e53.png!small?1605062280011

 

单独的and是不拦截的。and后面加数字或者字符的表达式会被匹配拦截。

1=http://www.52bug.cn/hkjs/1,1=2的本质是构造一个真、假值,我们可以直接用True,False代替

 

1605062283_5fab4e8b5bf14e00693e4.png!small?1605062283390

 

但是依然会被拦截。不过and也可以用 && 代替。

我们构造1' && True --+ 就可绕过

 

1605062287_5fab4e8febe02e9c9a1c1.png!small?1605062287984

 

1' && False --+

 

1605062291_5fab4e93e539d2de7dd1f.png!small?1605062291955

 

方法二

将and 后面的数字或者字符表达式加几个内联注释也可以绕过。

内联注释:/* */ 在mysql中是多行注释 但是如果里面加了! 那么后面的内容会被执行。这些语句在不兼容的数据库中使用时便不会执行

如:    1' and /*!1*/=/*!1*/ --+

 

1605062301_5fab4e9d0e7b4d4ca1822.png!small?1605062301063

 

1' and /*!1*/=/*!2*/ --+

 

1605062304_5fab4ea0727303096bd0b.png!small?1605062304500

 

方法三  分块传输 分块传输的原理请自行检索,这里不再赘述。

分块传输插件:https://github.com/c0ny1/chunked-coding-converter/releases/tag/0.2.1

 

1605062308_5fab4ea4b130b2c0d7e1d.png!small?1605062308775

 

正常写测试payload :    1' and 1=http://www.52bug.cn/hkjs/1 --+

 

1605062312_5fab4ea8e4936f3dc9337.png!small?1605062313038

 

将请求方式改为POST,然后进行分块传输编码

 

1605062316_5fab4eac6aaa7c207f667.png!small?1605062316445

 

说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!