首页 渗透工具 正文

Upload_Auto_Fuzz:1000+ Payload 的 Burp Suite 文件上传漏洞

摘要

文件上传漏洞一直是 Web 渗透测试中的高频得分点,但手工逐个构造绕过 Payload 既耗时又容易遗漏测试点。Upload_Auto_Fuzz 是一款专为 Burp Suite 打造的文件上传漏洞自动化 Fuzz 插件,依托 Intruder 模块批量生成绕过载荷,内置 1000+ 条 Payload 和 14 种可独立开关的 Fuzz 策略,覆盖后缀绕过...

文件上传漏洞一直是 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+,并优化了去重算法;
  • 新增多个实战测试点:双写绕过(pphphpaspasp)、form-data 污染(多分号、脏数据替换)、未闭合引号(filename="shell.php)、URL 编码 Content-Type(image%2Fphp)、.htaccess / .user.ini 配置文件内容注入等。

测试覆盖范围:从后缀到文件内容的完整攻击面

这款文件上传漏洞插件的 Payload 体系可以归纳为六大类。

后缀绕过

  • 可执行扩展名变体:php3、php5、phtml、phar、asa、cer、ashx、jspx 等;
  • 大小写混淆:pHpPhPaSpJsP
  • 双写绕过:pphphpaspaspjspjsp,针对只做一次替换的过滤逻辑;
  • 特殊字符:空格、点号、分号,如 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%2Fgifimage%2Fphp
  • 双重 Content-Type 头与大小写变换。

系统特性利用

  • Windows:NTFS 数据流 shell.php::$DATA、IIS 分号解析 shell.asp;.jpg、保留设备名 con.phpaux.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 官方文档),然后按以下步骤加载:

  1. 从项目仓库下载 Upload_Auto_Fuzz.py
  2. 打开 Burp Suite,进入 Extender → Extensions → Add
  3. Extension type 选择 Python
  4. 选中下载的 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

[文件内容]

Intruder Positions 中框选文件上传区域

第三步:切换到 Payloads 标签页,按如下方式配置:

Payload type: Extension-generated
Select generator: Upload_Auto_Fuzz 1.2.0

Payloads 标签页选择 Upload_Auto_Fuzz 扩展生成器

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

取消勾选 Payload Encoding 选项

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

Intruder 攻击结果按状态码与响应长度筛选

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 库。

收藏 0
评论
博主关闭了评论
友情链接