zoukankan      html  css  js  c++  java
  • 网络安全从入门到精通(第九章-5) Bypass

    本文内容:

    • 什么是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。

        

  • 相关阅读:
    使用 Vim 搭建 JavaScript 开发环境
    SpaceVim 语言模块 erlang
    SpaceVim 语言模块 lua
    SpaceVim 语言模块 python
    SpaceVim 语言模块 elixir
    SpaceVim 语言模块 dart
    SpaceVim 语言模块 elm
    如何配置 SpaceVim
    彻底理解浏览器缓存机制
    react-创建react元素
  • 原文地址:https://www.cnblogs.com/xz25/p/12771918.html
Copyright © 2011-2022 走看看