渗透测试 | 利用HTTP分块编码机制进行WAF绕过
字数 1850 2025-09-01 11:25:54
HTTP分块编码机制在WAF绕过中的应用
1. 实验概述
本实验旨在通过Burp Suite工具利用HTTP分块编码机制绕过Web应用防火墙(WAF)的保护,实现对目标系统的渗透测试。
实验目标
- 掌握Burp Suite数据包分块插件的配置和使用
- 理解并应用HTTP分块编码机制绕过WAF
- 通过分块传输技术获取目标系统敏感信息
2. 核心知识点:HTTP分块编码
2.1 HTTP分块编码原理
HTTP分块编码(HTTP Chunked Encoding)是一种传输编码方式,允许数据以块的形式传输,无需等待整个消息完全生成。主要特点:
- 使用
Transfer-Encoding: chunked标头替代Content-Length - 数据被分割为一系列块(chunks),每个块包含:
- 块大小(十六进制表示)
- 回车换行符(\r\n)
- 实际数据
- 另一个回车换行符(\r\n)
- 传输结束时发送一个大小为0的块
2.2 分块编码示例
POST /target HTTP/1.1
Host: example.com
Transfer-Encoding: chunked
7\r\n
payload\r\n
0\r\n
\r\n
3. 实验环境准备
3.1 硬件环境
- 服务器:Windows Server 2008
- 防火墙设备:1台
- 攻击机:Windows 10
- 网络设备:交换机2台,路由器1台
3.2 软件工具
- 火狐浏览器
- Burp Suite Community版
- 数据包分块插件(需提前准备)
4. 实验步骤详解
4.1 初始配置
-
配置浏览器代理
- 打开火狐浏览器,访问目标URL:http://202.1.10.34:8080
- 进入浏览器设置 → 网络设置 → 手动配置代理
- 设置代理为Burp Suite监听地址(通常为127.0.0.1:8080)
-
启动Burp Suite
- 运行Burp Suite Community版
- 确认Proxy → Options中的代理设置与浏览器一致
- 开启拦截功能(Intercept is on)
4.2 数据包分块插件安装与配置
-
导入分块插件
- 在Burp Suite中进入Extender → Add
- 选择已下载的分块插件(如Chunked-Encoding Converter)
- 完成安装并确保插件已激活
-
插件配置要点
- 设置分块大小(通常为7-10字节)
- 配置编码方式(通常保持默认)
- 测试插件功能是否正常
4.3 WAF绕过实战
4.3.1 基础绕过技术
-
捕获正常请求
- 在浏览器中执行正常操作
- 在Burp Suite中拦截请求
-
应用分块编码
- 在拦截的请求中添加
Transfer-Encoding: chunked头 - 移除
Content-Length头(如果存在) - 使用插件将请求体转换为分块格式
- 在拦截的请求中添加
-
发送修改后的请求
- 观察WAF是否放行
- 检查服务器响应
4.3.2 分块SQL注入攻击
-
构造恶意负载
admin' AND 1=CONVERT(int,(SELECT table_name FROM information_schema.tables))-- -
分块处理技巧
- 将注入语句分割为多个小块
- 关键部分(如SQL函数)保持在一个块内
- 使用注释(--)分隔敏感部分
-
发送分块请求
5\r\n admin\r\n 10\r\n ' AND 1=\r\n 8\r\n CONVERT(\r\n 10\r\n int,(SELECT\r\n ... 0\r\n \r\n
4.3.3 信息收集阶段
-
查询数据表名称
- 使用分块技术绕过WAF执行
information_schema.tables查询 - 分析返回结果识别关键表名
- 使用分块技术绕过WAF执行
-
查询表字段信息
- 针对识别出的表执行
information_schema.columns查询 - 分块处理查询语句避免触发WAF规则
- 针对识别出的表执行
-
提取数据内容
- 构造最终的数据查询语句
- 使用分块技术获取管理员账户等敏感信息
5. 实验注意事项
-
法律合规
- 仅对授权目标进行测试
- 遵守《中华人民共和国网络安全法》
-
技术要点
- 分块大小选择:过小影响效率,过大可能被WAF检测
- 关键函数/关键词保持完整不被分割
- 注意服务器对分块编码的支持情况
-
调试技巧
- 使用Burp Repeater模块反复测试
- 观察WAF的响应模式调整分块策略
- 结合其他编码技术(如URL编码)增强绕过效果
6. 扩展思考
-
分块编码的防御
- WAF应规范化处理分块请求
- 服务器端应限制分块请求的使用场景
- 实施深度包检测(DPI)识别恶意分块
-
组合利用技术
- 分块编码+HTTP参数污染
- 分块编码+HTTP头注入
- 分块编码+HTTP请求走私
-
现代WAF的对抗
- 新一代WAF已具备分块编码分析能力
- 需要结合更多混淆技术
- 关注0day漏洞的利用可能性
7. 总结
HTTP分块编码机制作为一种合法的传输方式,可以被攻击者利用来绕过传统WAF的检测。本实验详细展示了如何通过Burp Suite工具配合分块插件,实现对WAF的有效绕过。安全人员应充分理解这种技术原理,既能在渗透测试中合理使用,也能在防御体系中有效防范此类攻击。