文件上传绕过思路总结
字数 1454 2025-08-24 23:51:25
文件上传绕过技术全面指南
1. 文件上传绕过基础思路
文件上传绕过主要分为两种思路:
1.1 硬怼方法
- 直接针对WAF的检测规则进行突破
- 适用于对WAF规则有一定了解的情况
1.2 迂回打击
- 利用系统特性或中间件漏洞绕过
- 寻找真实IP绕过云WAF等间接方法
2. 硬怼方法详解
2.1 后缀名Fuzz
- 测试各种可能的后缀名变体
- 包括中间件配置文件后缀
- 寻找WAF规则中可能遗漏的后缀
2.2 HTTP头变量改造
-
Content-Type修改:
- 删除Content-Type
- 修改为其他类型(application/text, image/jpeg等)
- 添加charset参数(ibm869, iso-8859-13等)
- 大小写变换
- 重复传入
- 回车换行污染
-
Content-Disposition改造:
- 溢出绕过(添加大量字符)
- 回车换行
- 双写绕过
- 参数污染
-
boundary改造:
- 加减空格
- 前面添加恶意参数
- 多个boundary污染
- 回车换行污染
- 分割污染
2.3 文件名构造技巧
-
特殊符号替换与构造异常闭合:
filename='shell.jspx.jsp' filename=shell.jspx.jsp filename=shell.jspx.jsp' "filename"=shell.jspx; -
重写技巧:
filename=shell.jpg;filename=shell.jspx; filename=shell.jspx;filename=shell.jpg; -
大小写变换:
FileName=shell.jspx.jsp' -
参数污染:
FileName=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaashell.jspx.jsp' FileName =shell.jspx(加空格) filename===="shell.jspx.jsp1"(加等号) FileName =shell.jspx(前后加空格) -
文件名编码:
filename=\u0073\u0068\u0065\u006c\u006c\u002e\u006a\u0073\u0070 -
回车换行:
FileName=shell.jspx. jsp File Name=shell.jspx.jsp'
2.4 其他HTTP头改造
-
Accept-Encoding:
Accept-Encoding: gzip Accept-Encoding: compress Accept-Encoding: deflate Accept-Encoding: br Accept-Encoding: identity Accept-Encoding: * -
修改请求方式:
- POST改为GET/PUT等其他方式
-
Host头部绕过:
- 对Host进行回车换行
- 修改Host头部
- Host跟链接
- 改为127.0.0.1
- 删除Host
3. 迂回打击方法
3.1 基于HTTP的绕过
-
免杀马:
- 制作WAF无法识别的恶意文件
- 需要持续更新免杀技术
-
分块传输:
- 结合参数污染效果更佳
-
修改长度字段:
- 大数据污染使WAF丢弃检测
- 确保后端能接收完整数据
-
修改传输编码:
- 手动修改编码方式
-
基于系统特性添加字段:
- 如ASP专属bypass-devcap-charset
-
修改头部+内容结合:
- 伪装为图片等格式
- 中间插入恶意代码
-
增加多个boundary:
- 打乱恶意内容结构
-
文件名写入文件:
- Windows下利用多个<<<<写入文件
3.2 其他绕过方法
-
寻找真实IP:
- 利用SSL证书
- 通过子域名
- 公司其他业务
- 信息泄露(GitHub, Google等)
- 专用CDN查找网站
- 已知工具
- 搜索引擎(fofa等)
- HTTP返回信息
- 邮箱弱口令
- 社会工程学
-
利用子域名攻击:
- 主站防护严格但子域名可能未加WAF
- 子域名可能在白名单中
-
利用设备漏洞:
- 寻找VPN等设备漏洞
4. WAF检测特性分析
WAF检测通常基于以下特性:
- 只判断后缀:较少见,开发白名单可完成
- 只判断内容:较少见
- 内容后缀同时判断:较常见
- 根据文件后缀判断内容检测:较常见
- 根据Content-Type判断内容检测:较常见
5. 绕过思路总结
WAF绕过核心思路是破坏其规则匹配:
-
基于正则匹配的绕过:
- 参数污染
- 正则破坏
- 打乱WAF检测
-
基于正则匹配的缺失:
- 修改请求方式
- 使WAF不检测特定内容
-
基于操作系统特性:
- 后缀名加特殊符号
- 利用系统解析特性
关键原则:既要绕过WAF,又要让后端能正确识别。可通过污染、多写、添加删除等方式实现。
6. 实战建议
-
先分析WAF规则特性:
- 测试后缀名限制
- 测试内容检测
- 测试组合检测
-
根据分析结果选择合适方法:
- 硬怼:针对已知规则弱点
- 迂回:利用系统或中间件特性
-
保持方法更新:
- WAF规则不断进化
- 需要持续学习新技术
-
合法合规:
- 仅在授权测试中使用
- 遵守法律法规