Upload_Auto_Fuzz:1000+ Payload 的 Burp Suite 文件上传漏洞
文件上传漏洞一直是 Web 渗透测试中的高频得分点,但手工逐个构造绕过 Payload 既耗时又容易遗漏测试点。Upload_Auto_Fuzz 是一款专为 Burp Suite 打造的文件上传漏洞自动化 Fuzz 插件,依托 Intruder 模块批量生成绕过载荷,内置 1000+ 条 Payload 和 14 种可独立开关的 Fuzz 策略,覆盖后缀绕过、Content-Type 伪造、系统特性利用、配置文件上传等常见限制场景。
无论你在做授权渗透测试、安全审计,还是刷 upload-labs 靶场,这款 Burp Suite 插件都能把原本需要半小时的手工测试压缩到几分钟。下面从功能、原理到部署使用,完整介绍这款文件上传漏洞测试工具。
产品介绍:Upload_Auto_Fuzz 是什么
Upload_Auto_Fuzz 是一个开源的 Burp Suite 扩展(Extension),核心思路是把安全研究员日常积累的文件上传绕过手法固化为 Payload 生成器。使用时只需在 Intruder 中框选上传请求的文件的区域,插件便会自动生成数百上千条变异请求,批量探测目标的上传校验逻辑是否存在缺陷。
插件目前迭代至 v1.2.0,支持 PHP、ASP、ASPX、JSP 四种主流后端语言的针对性测试,采用 Python 编写,通过 Jython 环境加载运行。
核心功能:14 种 Fuzz 策略覆盖主流上传绕过场景
v1.2.0 将 Payload 生成逻辑拆分为 14 种独立策略,每种策略可在配置面板中单独启用或禁用,默认全部开启:
| 策略 | 描述 | 默认 |
|---|---|---|
| suffix | 后缀绕过,扩展名变体 | ✓ |
| content_disposition | Content-Disposition 头操控 | ✓ |
| content_type | Content-Type 伪造 | ✓ |
| windows_features | Windows 系统特性(ADS、保留名) | ✓ |
| linux_features | Linux 特性(路径穿越、多扩展名) | ✓ |
| magic_bytes | 文件头魔术字节 | ✓ |
| null_byte | 空字节截断 | ✓ |
| double_extension | 双/多扩展名 | ✓ |
| case_variation | 大小写变换 | ✓ |
| special_chars | 特殊字符注入 | ✓ |
| encoding | 编码绕过(URL/Unicode) | ✓ |
| waf_bypass | WAF 绕过技术 | ✓ |
| webshell_content | WebShell 内容注入 | ✓ |
| config_files | 配置文件上传 | ✓ |
这种策略化设计的好处很明显:面对有 WAF 防护的目标,可以关掉噪音大的策略做精细化探测;面对靶场环境,则可以全量跑一遍,快速定位可用的上传绕过姿势。
技术优势:v1.2.0 架构重构带来哪些提升
相比早期版本,v1.2.0 在架构和功能两个层面都有实质改动。
架构层面
- 整体采用策略模式重写,各 Fuzz 策略低耦合,代码结构更清晰,后续扩展新策略只需实现对应方法;
- 新增图形化配置面板,安装后 Burp 顶部菜单栏会出现
Upload Fuzz标签页,可自定义测试范围; - 适配 Burp Suite 深色主题,长时间测试不刺眼。
功能层面
- 新增后端语言选择(PHP/ASP/ASPX/JSP),Payload 按目标语言裁剪,减少无效请求;
- Payload 总量提升至 1000+,并优化了去重算法;
- 新增多个实战测试点:双写绕过(
pphphp、aspasp)、form-data 污染(多分号、脏数据替换)、未闭合引号(filename="shell.php)、URL 编码 Content-Type(image%2Fphp)、.htaccess/.user.ini配置文件内容注入等。
测试覆盖范围:从后缀到文件内容的完整攻击面
这款文件上传漏洞插件的 Payload 体系可以归纳为六大类。
后缀绕过
- 可执行扩展名变体:php3、php5、phtml、phar、asa、cer、ashx、jspx 等;
- 大小写混淆:
pHp、PhP、aSp、JsP; - 双写绕过:
pphphp、aspasp、jspjsp,针对只做一次替换的过滤逻辑; - 特殊字符:空格、点号、分号,如
shell.php.、shell.php;.jpg; - 空字节截断:
shell.php%00.jpg,适用于老版本语言环境。
请求头操控
- Content-Disposition 大小写变异:
ConTENT-DisPoSition; - form-data 污染:删除、替换为脏数据、插入多个分号;
- filename 参数变异:双 filename、空 filename、未闭合引号、多等号;
- 换行注入:
filename\n="shell.php"。
Content-Type 绕过
- MIME 类型伪造:image/gif、image/png、application/octet-stream;
- URL 编码:
image%2Fgif、image%2Fphp; - 双重 Content-Type 头与大小写变换。
系统特性利用
- Windows:NTFS 数据流
shell.php::$DATA、IIS 分号解析shell.asp;.jpg、保留设备名con.php、aux.asp、尾部空格与点号; - Linux:Apache 多扩展名解析
shell.php.jpg、路径穿越../shell.php、隐藏文件.shell.php。
编码绕过
- URL 编码扩展名:
%70%68%70; - 双重 URL 编码;
- MIME 编码(RFC 2047);
- Unicode 字符替换。
配置文件与文件内容
.htaccess:通过 SetHandler 让服务器把任意文件解析为 PHP;.user.ini:利用 auto_prepend_file 实现文件包含;web.config:IIS handlers 配置利用;- 魔术字节注入:GIF89a、PNG 头、PDF 头,以及图片头 + WebShell 的组合载荷。
安装与使用教程:三分钟跑通文件上传 Fuzz 测试
环境准备与安装
插件基于 Python 编写,需要先在 Burp Suite 中配置好 Jython 环境(可参考 Burp 官方文档),然后按以下步骤加载:
- 从项目仓库下载
Upload_Auto_Fuzz.py; - 打开 Burp Suite,进入 Extender → Extensions → Add;
- Extension type 选择 Python;
- 选中下载的
Upload_Auto_Fuzz.py,点击 Next 完成加载。
配置(可选)
加载成功后,Burp 顶部菜单栏会出现 Upload Fuzz 标签页,提供三项配置:
- Target Backend Languages:选择目标后端语言(PHP/ASP/ASPX/JSP);
- Fuzzing Strategies:勾选或取消特定 Fuzz 策略;
- Include WebShell Content:控制 Payload 中是否包含真实 WebShell 代码。
实战测试步骤
第一步:抓取一个正常的文件上传请求,右键发送到 Intruder。
第二步:在 Positions 中框选需要 Fuzz 的区域,建议选中整个文件部分:
Content-Disposition: form-data; name="file"; filename="test.jpg"
Content-Type: image/jpeg
[文件内容]

第三步:切换到 Payloads 标签页,按如下方式配置:
Payload type: Extension-generated
Select generator: Upload_Auto_Fuzz 1.2.0

第四步:务必取消勾选 Payload Encoding,否则 URL 编码会破坏 Payload 结构,导致测试失效。

第五步:点击 Start attack,根据响应长度和状态码筛选可疑结果,重点排查响应异常或返回上传成功提示的请求。

Payload 示例:典型上传绕过手法速查
| 类型 | 示例 | 说明 |
|---|---|---|
| 后缀绕过 | shell.phtml |
PHP 替代扩展名 |
| 双写绕过 | shell.pphphp |
绕过单次替换过滤 |
| 分号截断 | shell.asp;.jpg |
IIS 解析特性 |
| 空字节 | shell.php%00.jpg |
老版本语言截断 |
| 双扩展名 | shell.jpg.php |
Apache 解析顺序 |
| NTFS 流 | shell.php::$DATA |
Windows 特性 |
| 双 filename | filename="1.jpg";filename="shell.php" |
参数污染 |
| 未闭合引号 | filename="shell.php |
解析差异 |
| 配置文件 | .htaccess |
修改服务器解析规则 |
应用场景
- 授权渗透测试:在客户授权范围内对上传接口做自动化安全检测,快速输出漏洞证据;
- 企业安全审计:自查业务系统的上传校验逻辑,覆盖手工测试容易遗漏的边界情况;
- 靶场练习与教学:配合 upload-labs 等文件上传靶场,系统化学习各类绕过手法;
- WAF 防护能力验证:通过 waf_bypass 策略检验现有 WAF 规则对上传攻击的拦截效果。
需要留意的是:部分 Payload 可能触发 WAF 告警,建议先在测试环境验证;WebShell 内容注入默认开启,正式测试前务必确认已获得授权;某些 Payload 依赖特定服务器配置(如 IIS 分号解析、Apache 多扩展名)才能生效,未命中不代表绝对安全。
总结
Upload_Auto_Fuzz 把文件上传漏洞测试中重复性最高的 Payload 构造工作完全自动化,1000+ 条载荷、14 种独立策略加上可视化配置面板,让它成为 Burp Suite 插件库中值得常备的一款上传 Fuzz 工具。v1.2.0 的策略模式重构也为二次开发留足了空间,有定制化需求的研究员可以很方便地扩展自己的绕过策略。
项目开源地址:https://github.com/T3nk0/Upload_Auto_Fuzz,感兴趣的话可以 Star 关注后续更新,也欢迎提交 Issue 和 PR 完善 Payload 库。