实战 | 如何利用 WAF 缺陷进行绕过
文章探讨了多种绕过Web应用防火墙(WAF)的技术手段,包括利用性能缺陷、协议解析漏洞、编码绕过等方法,并提醒读者遵守相关法律法规。 2025-9-8 02:42:44 Author: www.freebuf.com(查看原文) 阅读量:4 收藏

freeBuf

主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

在挖洞过程中,往往会遇到各种攻击利用被waf拦截的情况,本文浅析总结了常见的一些绕过思路以及具体实现

图片

图片

利用waf的缺陷绕过

利用waf性能缺陷-垃圾字符填充

对于通用性较强的软WAF来说,不得不考虑到各种机器和系统的性能,故对于一些超大数据包、超长数据可能会跳过不检测 因此可以填充大量垃圾字符来逃避waf对数据包的检测如下

利用waf性能缺陷-发送大量请求包

可以采取高并发的攻击手段,waf同样出于性能考虑可能会直接放行部分数据包。

利用waf适配组件的缺陷

由于后端web容器、中间件、数据库、脚本语言的多样性,waf很难覆盖全,容易导致waf解析不了而后端可以正常解析读取导致的绕过

IIS+asp

在IIS+ASP的环境中,如果url中出现了百分号,但后面邻接的字符拼起来后又不在url编码表之内的话,ASP脚本处理时会将其忽略 例如假设有如下请求xxx.asp?id=1 union se%lect 1,2,3,4 fro%m adm%in waf规则不严放行后,后端由于该特性成功处理执行了xxx.asp?id=1 union select 1,2,3,4 from admin导致绕过

TOMCAT

tomcat的特性也可以构造出许多绕过的方式

1.参数前后添加空白字符绕过 filename="1.jsp"的filename字符左右可以加上一些空白字符%20 %09 %0a %0b %0c %0d %1c %1d %1e %1f,比如%20filename%0a="1.jsp"这样导致waf匹配不到我们上传⽂件

2.utf-16、cp037等各种编码绕过 utf-16

图片

cp037(原始payload为' and (7=len(db_name())) and 'a' = 'a)

图片

json下的unicode编码

图片

利用waf适配协议的缺陷

畸形请求(与Web应用所处的中间件有关,在部分中间件下不适用)

将HTTP请求头变为随机字符串例如xxxxT

图片

请求方法后加一个table等空字符

图片

使用get请求方法但带上post体(需要服务端能正常接受)

图片

分块传输

仅仅适用于post传输方法

图片

分块传输不少waf现在也都可以识别了,可以结合waf性能缺陷的思路综合利用-延时分块传输 具体使用可以参考该项目 http://github.com/c0ny1/chunked-coding-converter

图片

非预期请求方式

get改为post、Content-Type: application/x-www-form-urlencoded改为multipart/form-data等

跳过waf直接访问服务器

寻找真实ip绕过云waf

云waf通过配置NS或者CNAME记录,使得对网站的请求报文优先经过WAF主机,经过WAF主机过滤之后,将被认为无害的请求报文再送给实际的网站服务器进行请求,此时只要找到服务器的真实ip,修改host为服务器真是ip即可绕过云waf 常见寻找真实ip的方式有如下几种 1.证书信息查询 https://myssl.com/ 2.dns历史解析记录 3.搜集子域名ip c段(考虑到费用问题,一些子域名并不会部署) 4.超级ping ......

寻找没有部署waf的nginx反代机器

当waf在nginx服务器上部署,且存在nginx集群时,可以试试尝试寻找能反代服务却又没用部署waf的机器访问进行绕过 以下面这个为例,测试某接口发现被拦截

图片

搜集ip信息为xxx.xxx.200.1xx

图片

查找c段服务,一个个访问尝试

图片

利用成功

图片

利用waf白名单

WAF存在某些机制,不处理和拦截白名单中的请求数据 例如特定的ip,来自于搜索引擎爬虫的访问数据等 特定ip 可以使用https://github.com/TheKingOfDuck/burpFakeIP插件将xff等头部设置为127.0.0.1等进行绕过尝试

图片

搜索引擎爬虫的访问数据 User-Agent修改为谷歌搜索引擎等

免责声明

1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。

2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。

3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。

本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)


文章来源: https://www.freebuf.com/articles/web/447696.html
如有侵权请联系:admin#unsafe.sh