网络安全从入门到精通(第九章-5) Bypass - 绕过阻挡我们的Waf (上)

本文内容:

  • 什么是bypass
  • WAF检测机制
  • 常见绕WAF手法

 

1,什么是bypass:

  WAF是一个缩写,全名叫做Web应用防护系统,是通过执行一系列针对HTTP/HTTPS的安全性策略来专门为Web引用提供保护的一款产品。

  WAF分类:

    硬件类型:价格昂贵,正常企业不会购买。

    软件类型:安全狗、云锁、悬镜、护卫神、云盾、D盾。

  Bybass:字面意思,就是绕过,通过特殊语句的构建进行渗透测试,然后达到绕过WAF的手法。

2,WAF检测机制:

  核心:正则匹配,还有字符串强行匹配,语义解析等,最常见的还是正则匹配,[通过匹配,符合规则,就拦截]。

3,常见绕WAF手法:

  在传参时,,被WAF拦截,要先将传参的数据,一点点拆开了,看看WAF具体是匹配什么拦截的。

  1.如是1=1:

    尝试:

      -1=-1 返回正常

      -2=-2 报错,说明此处存在注入点。

  2.如是and:

    尝试:

      数据库的逻辑符号:"$"

    注意:"$"在url中具有特殊含义,所以需要进行URL编码。

  3.如是sql语句:

    尝试1:

      内联注释:内联注释,是mysql为了保持与其它数据库兼容,将mysql中特有的语句放在/*!.....*/中执行。

      这些语句在不兼容的数据库中不执行,而在mysql中自身识别,执行。

      举例:id=1 union /*!10044select*/1,2,3

      解释:10044为数据库的版本,可通过版本绕过,使用burp抓包爆破,看那些版本是可以绕过的。

    尝试2:

      注意:绕过方法是可以结合的,比如内联结合特殊字符。

      举例:id=1 union -- qwe/*%0a select1,2,3from admin %23 */

      解释:0a换行 -- qwe注释/*  %23注释*/

    尝试3:

      可以使用Apace参数污染,Apace特有的。

      举例:id=1 /*$id=2 union select 1,2,3 from admin %23*/

      解释:传参时,以为id=1,解析时,实际id=2

  4.总结:

    1.大小写绕过[很老WAF才有用]

    2.替换绕过[很老WAF才有用]

    3.特殊字符绕过:如[%0a换行]

    4.编码绕过

    5.等价替换[利用其它函数替换]:如union #%0aselect拦截 [union all #%0aselect不拦截]

    6.容器特性:如Apace的参数污染 HPP,或者是IIS的%分隔在IIS传参里面写s%e%l%e%c%t=>select

    7.白名单:如[管理员权限或者是127.0.0.1本地访问不拦截]

    8.缓冲区:数据太多了,超出了WAF检测的范围。

    9.函数+特殊符号:有些函数加了反引号,也是可以运行,常见的是sleep、updatexml。

    

posted @ 2020-04-25 10:50  TheHIde  阅读(675)  评论(0)    收藏  举报