渗透测试-WAF绕过通用思路

本文详细介绍了多种WAF(Web应用防火墙)绕过技术,包括大小写变化、双写、编码转换、注释利用、垃圾字符、分块传输、HTTP协议漏洞、参数污染(HPP)、容器特性等。通过这些通用方法,可以有效地规避WAF的检测,实现渗透测试的目标。
摘要由CSDN通过智能技术生成

概述:通用的方法,不仅限于 SQL 注入,就是万金油,无非就是大小写、双写、编码、注释、垃圾字符、分块传输、HPP、WAF 特性等

核心: 所有能改的地方,都捣鼓捣鼓改改,增加就加,能删就删,多拿点其他内容来混淆视听。

大小写

unIoN Select

双写

一些后端可能会直接给关键词过滤为空,那么就可以利用双写来绕过

ununionion ==> 去掉union ==> union

编码

  1. URL 编码

  2. Unicode 编码

  3. 十六进制编码

  4. 其他后端会解析的编码

注释

如 mysql 中的内联注释,可以用来代替空格

注释也可以和换行搭配使用,注释掉后面的内容,再通过换行逃逸到注释之外

test.php?id=1 /*!order*//**/%23A%0A/**/%23A%0A/*!by*//**/2

垃圾字符

一些 WAF 设置了过滤的数据包长度,如果数据包太大太长,为了考虑性能就会直接略过这个数据包

GET /foo?sqli=111...80万个1...111'+and+2*3=6+--+ HTTP/1.1
User-Agent: Mozilla/5.0
Host: Host
Accept: */*

分块传输

burp 插件:https://github.com/c0ny1/chunked-coding-converter.git

在头部加入 Transfer-Encoding: chunked 之后,就代表这个报文采用了分块编码。这时,post 请求报文中的数据部分需要改为用一系列分块来传输。每个分块包含十六进制的长度值和数据,长度值独占一行,长度不包括它结尾的,也不包括分块数据结尾的,且最后需要用 0 独占一行表示结束。

HTTP 协议绕过

HTTP 0.9

HTTP 0.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值