一个用于测试文件上传功能安全性的 Burp Suite 插件。通过 Intruder 模块自动生成各类绕过 payload,覆盖常见的文件上传限制场景。
v1.2.0 更新内容
架构重构
- 采用策略模式重写,代码结构更清晰
- 新增配置面板,可自定义测试范围
- 支持 Burp Suite 深色主题
功能增强
- 新增后端语言选择(PHP/ASP/ASPX/JSP)
- 新增 14 种独立的 Fuzz 策略,可单独启用/禁用
- payload 数量提升至 1000+
- 优化去重算法,减少无效请求
新增测试点
- 双写绕过:pphphp、aspasp
- form-data 污染:多分号、脏数据替换
- 未闭合引号:filename=
“shell.php
- URL 编码 Content-Type:image
%2Fphp
- 配置文件内容注入:.htaccess / .user.ini 实际利用内容
测试覆盖范围
后缀绕过
- 可执行扩展名变体: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 内容(可选)
- 图片头 + WebShell 组合
插件环境安装
本插件需要 Python 环境,Burp Suite 本身基于 Java,而 Jython 则是运行在 JVM 上的 Python 实现。
Jython 下载地址:
https://www.jython.org/download

为了避免部分用户在安装时可能遇到的错误,可以参考以下步骤进行安装,成功率较高。
-
在系统盘(例如 C 盘)创建一个不含中文名的文件夹。将下载好的 jython-installer-2.7.4.jar 文件放入此文件夹。

-
在该文件夹路径下打开命令行,先确认 Java 版本(需要 Java 8 或更高版本),然后直接运行 Jython 安装器。
java -version
java -jar .\jython-installer-2.7.4.jar

-
启动安装向导,点击 “Next” 继续。

-
阅读并接受许可证协议,点击 “I accept”,然后 “Next”。

-
选择安装类型,直接使用默认的 “Standard” 即可,点击 “Next”。

-
选择 Jython 的安装目录。同样建议路径中不要包含中文,可以使用默认路径 C:\jython2.7.4,点击 “Next”。

-
等待安装完成。安装成功后,进入你选择的安装目录(例如 C:\jython2.7.4)。

-
确认目录中存在 jython.jar 文件,这表示 Jython 已成功安装。接下来需要在 Burp Suite 中配置此环境。
在 Burp Suite 中配置 Jython 环境
以 Burp Suite 2025.3.1 版本为例。
-
打开 Burp Suite,进入 Extender -> Extensions 标签页。

-
向下滚动到 Python Environment 区域进行配置。

-
设置 Location of Jython standalone JAR file:点击 “Select file...”,导航到你的 Jython 安装目录,选择 jython.jar 文件。

-
设置 Folder for loading modules:点击 “Select folder...”,选择你的 Jython 安装目录(例如 C:\jython2.7.4)。

至此,运行 Python 扩展所需的环境就已配置完成。
插件安装
Upload Auto Fuzz 插件下载地址:
https://github.com/T3nk0/Upload_Auto_Fuzz
这是该插件的官方 GitHub 仓库,你可以在这里获取最新版本和源代码。
-
在 Burp Suite 的 Extender -> Extensions 标签页,点击 “Add” 按钮。

-
在弹出的文件选择框中,定位到你下载的插件脚本 Upload_Auto_Fuzz.py,选择并打开。

-
确认扩展详情,确保输出和错误显示在 UI 中,然后点击 “Next”。

-
插件加载成功后,输出窗口会显示加载日志和插件简介。

-
此时,Extensions 标签页下会出现一个新的 Upload Auto Fuzz 面板,你可以在这里配置目标后端语言和启用的 Fuzzing 策略。

插件使用
-
遇到文件上传点,先正常上传一个文件(如图片)并抓取请求。
-
将抓到的 POST 请求发送到 Intruder 模块。

-
在 Positions 标签页,清空所有自动标记,手动标记需要 Fuzz 的区域。建议选中整个文件部分,包括 Content-Disposition 头、Content-Type 头和文件内容。
-
切换到 Payloads 标签页进行配置:
- Payload type: 选择
Extension-generated
- Select generator: 选择
upload_auto_fuzz

-
重要步骤:在 Payload Encoding 区域,取消勾选 URL-encode these characters,以确保特殊字符 payload 不被编码。

-
点击 “Start attack” 开始攻击。攻击完成后,可以根据响应长度、状态码等条件筛选可能成功的上传绕过 payload。
插件策略与示例
该插件内置了多种针对文件上传漏洞的绕过策略,能够自动化生成丰富的测试用例,极大地提升了安全测试效率。
部分 Payload 示例:

策略说明:
插件将测试点抽象为不同的策略,每项策略对应一类绕过技术,用户可以根据目标环境选择性启用。

通过本教程,你可以顺利完成 Jython 环境的搭建,并成功配置使用功能强大的 Upload Auto Fuzz 插件,从而系统化地进行文件上传漏洞的检测。如果在配置过程中遇到问题,或想了解更多关于 Python 与安全工具的深度集成,欢迎在技术社区进行交流与探讨。
|