WAF绕过讲解

WAF绕过

WAF

在实际的渗透测试过程中,经常会碰到网站存在WAF的情况。网站存在WAF,意味着我们不能使用安全工具对网站进行测试,因为一旦触碰了WAF的规则,轻则丢弃报文,重则拉黑IP。所以,我们需要手动进行WAF的绕过,而绕过WAF前肯定需要对WAF 的工作原理有一定的理解。

首先,WAF分为非嵌入型WAF和嵌入型WAF,非嵌入型WAF指的是硬件型WAF、云WAF、软件型WAF之类的;而嵌入型WAF指的是网站内置的WAF。非嵌入型WAF对Web流量的解析完全是靠自身的,而嵌入型WAF拿到的Web数据是已经被解析加工好的。所以非嵌入型的受攻击机面还涉及到其他层面,而嵌入型WAF从Web容器模块型WAF、代码层WAF往下走,其对抗畸形报文、扫操作绕过的能力越来越强。当然,在部署维护成本方面,也是越高的。
在这里插入图片描述

waf绕过

从WAF工作的过程我们可以看到,要想绕过WAF,我们只有在 WAF解析HTTP请求 或 WAF匹配规则 两个地方进行绕过。因为第三、四步是WAF匹配到攻击之后的操作,这时候WAF已经检测到攻击了。

域名转换为ip

有些WAF设置的是针对域名的防护,在有些时候,我们可以尝试将域名改成ip地址有可以绕过WAF的防护。

WAF解析HTTP请求阶段绕过

要想在WAF解析HTTP请求阶段绕过,首先,我们得了解HTTP报文的各个字段的含义和服务器对HTTP报文各字段的解析。传送门:一次HTTP请求的过程

分块编码(Transfer-Encoding)绕过WAF

有关于HTTP数据的分块编码:HTTP协议之分段传输与分块编码

这种绕过方法利用的是WAF在解析HTTP协议的过程,既然WAF连我们的攻击代码都没有解析完全,那么第二步的正则匹配也就匹配不到我们的攻击代码了,自然就可以绕过了。

相关文章:在HTTP协议层面绕过WAF

              利用分块传输吊打所有WAF

              [技术]编写Burp分块传输插件绕WAF

              HTTP 协议中的 Transfer-Encoding

其他

其他的关于通过构造HTTP协议来绕过WAF,需要攻击者对 HTTP协议的各字段构造,各容器对于HTTP协议的解析 都很熟悉。笔者对于HTTP协议也还是停留在比较浅显的表面,要想更深入的了解HTTP协议,可以去查看官方文档:RFC2616。

WAF匹配规则阶段绕过

利用溢量数据绕过WAF

这种绕过方法利用的是通过提交非常大的数据,由于数据量过大,超过了WAF的正则匹配字符,我们的恶意代码就不经过WAF的正则匹配了,因此我们的恶意代码就进行绕过了。

传送门——> 绕过网站WAF(图片绕过)

其他

其他的关于通过绕过WAF匹配规则来绕过WAF的手段,需要攻击者构造畸形数据来躲避WAF的正则匹配规则,这需要攻击者发散思维,想出尽可能多的奇淫技巧。

了解waf防护原理
查看waf防护位置
熟悉防护规则

了解防护机制

查看拦截时间阀值

我们可以下载一个安全狗,查看它详细的防护机制,以此达到知己知彼,容易绕过。

目录扫描绕过waf

两种方式:

第一:修改客户端ip

第二:减慢扫描速度

第三:通过代理欺骗waf

手工注入绕过waf

搭建测试环境

了解绕过原理

熟悉常见绕过构造语句

构造绕过测试语句

  • 注入绕过方法

    1.大小写变种
    2.使用sql注释
    3.使用url编码
    4.使用空字节
    5.使用嵌套过剥离
    6.使用非标准入口点
    7.避开自定义过滤器

  • 大小写转换
    使用简单,但是效果不好
    例如: and 1=2 可以使其变为 AnD 1=2

  • 使用注释
    使用简单,效果一般
    union select 1,2,3,4, from admin
    注释完的效果
    //union//select//1,2,3,4 from admin
    /
    /un//io//n//sel//ec//t//1,2,3,4 from admin
    第二种注释
    /!and/ 1=2 效果显著 此处感叹号为"非"的意思,意思是感叹号后面的不注释

  • url编码
    正常编码 ’ 为%27
    / =%2f %2a %=%25
    /**/
    %252f%252a
    /
    url编码现在基本过不掉了

  • 使用空字节
    一些过滤器在处理输入时,如果碰到空字节就会停止处理
    我们通常也会利用空字节进行绕过过滤器
    如:
    id=1 %00 and 1=2

  • 利用嵌套剥离
    有些过滤器会从用户的输入中进行剥离一些敏感的函数
    那我们可以通过函数的嵌套进行绕过一次剥离
    selselectect 剥离后 select
    总结编写绕过语句
    利用注释
    /ABC/
    包含关键字
    /!/!/!union/
    变换提交方式
    将get改成post或者cookie提交
    /!/and//sdfsdgsfwef=swefs=sdgsewege//sfwewweqrwtewtdg//ssfsb=dsdfsfsog//1=2
    4月13日测试过狗可用
    通过非注释关键字加一些注释代替空格过waf
    变换提交方式有的也可以过狗,但是必须支持post提交方式

  • sqlmap tamper 利用
    symboliclogical.py
    space2mssqlhash.py
    appendnullbyte.py
    利用修改tamper绕过waf

  • 编写过waf一句话思路
    利用可变变量
    $a=b
    $b=c
    $$a=c
    利用函数
    利用判断语句
    利用编码

  • 突破waf拦截菜刀连接
    可以使用最新版菜刀
    中国蚁剑客户端
    可以使用过狗菜刀+中转脚本

  • 上传绕过waf
    上传突破禁止上传php文件
    第一:文件包含
    第二:双文件突破限制
    第三:修改上传参数

  • 提权过waf
    通过程序读密码
    通过waf绕过神器
    利用exp读hash
    将用户添加到远程桌面组,并且给目录降权
    利用第三方软件提权

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值