WEB安全--WAF的绕过思路

一、前言

随着攻击方式的层出不穷,市面上的网络waf也不断迭代,以至于使用传统的绕过手段无法起到显著的效果。为了能够达到通用型绕过的目的,我们就不能死磕编码和正则绕过,而是应该从其他方面去寻找对策。

二、修改数据包绕过(POST传参)

2.1、解析

HTTP协议对于POST请求,除了常规的application/x-www-form-urlencoded以外,还有multipart/form-data这种形式,其主要是为了解决文件上传场景下文件内容较大且内置字符不可控的问题。multipart/form-data格式也是可以传递POST参数的。 对于Nginx+PHP的架构,Nginx实际上是不负责解析multipart/form-data的body部分的,而是交给PHP来解析,因此WAF所获取的内容就很有可能与后端的PHP获取的内容发生不一致。

首先构造一个接收数据的php文件:

然后抓包上传数据,我们将GET请求修改为POST请求后并删掉无用的字段:

发现后端的file_get_contents接收到的是POST的数据形式:

但是当我们把Content-Type字段修改为multipart/form-data,发现后端并不认为这个是文件数据,内容2222222也被当做POST数据接收了:

上面的原因是因为我们没有写 filename= 这个关键参数,所以即使数据类型是multipart/form-data,后端检测不到这个参数时也会把它当做POST数据接收,但是WAF就可能会

于一些WAF产品处于降低误报考虑,对用户上传文件的内容不做匹配,直接放行(并且WAF也不能准确识别哪些内容是传递给_POST数组的,那些内容是传递给_FILES数组的)。那我们就可以结合上述特性思考:

如果我们用上面的方式进行POST传输恶意数据,但是WAF却认为我们是在上传文件,那这样就能实现通用型绕过了。

2.2、00截断

截断filename

绕过失败 :

2.3、双写Content-Disposition

成功绕过:

2.4、boundary绕过

成功绕过:

相关推荐
皮皮蟹虾饺8 小时前
DNS协议指南:从报文格式到安全加密与 K8s 实战
安全·容器·kubernetes
未若君雅裁10 小时前
生产问题排查与性能瓶颈定位:日志、监控、链路追踪、压测与Arthas
java·web安全
HavenlonLabs11 小时前
重塑链上未来的隐形基石:长期主义下的生态演进
大数据·人工智能·安全·区块链
其实防守也摸鱼12 小时前
软件安全与漏洞--Windows底层原理与软件逆向工程基础
linux·网络·数据库·算法·安全·安全架构·软件安全与漏洞
见青..13 小时前
文件上传漏洞之原理、探测、利用、绕过、防御
web安全·网络安全·漏洞·文件上传
代码飞天13 小时前
CTF之灵活多变——利用Metaploit来获取系统控制权
web安全
杨先生哦14 小时前
2026 热端攻防:AI 驱动 Web 前端安全全景透析
前端·笔记·安全·web安全
国科安芯16 小时前
基于AS32S601ZIT2型抗辐照MCU的商业航天卫星姿态确定与控制系统研究
单片机·嵌入式硬件·安全·fpga开发·架构·risc-v
持敬chijing17 小时前
Web渗透之前后端漏洞-CORS跨越访问漏洞
安全·web安全·网络安全·网络攻击模型·安全威胁分析
yuegu77717 小时前
HarmonyOS应用<节气通>开发第30篇:安全存储封装
安全