代码重构 v1.2.0

This commit is contained in:
T3nk0 committed 2025-12-24 10:25:34 +08:00
1 parent ad9c8e3afb
commit cdde0557e1
2 files changed
+2245 -1542

No files matched your search

+153 -88
View File
@@ -1,122 +1,187 @@
# Upload_Auto_Fuzz - Burp Suite 文件上传漏洞Fuzz插件
# Upload_Auto_Fuzz
Burp Suite 文件上传漏洞自动化测试插件
![Burp Suite Extension](https://img.shields.io/badge/Burp%20Suite-Extension-orange)
![Version](https://img.shields.io/badge/Version-v1.1.0-blue)
![Version](https://img.shields.io/badge/Version-v1.2.0-blue)
## 版本更新
## 简介
### v1.1.0
一个用于测试文件上传功能安全性的 Burp Suite 插件。通过 Intruder 模块自动生成各类绕过 payload,覆盖常见的文件上传限制场景。
- **新增功能**:
- 添加云环境绕过模块,支持对象存储、容器化环境和Serverless特性绕过
- 添加高级防御绕过模块,针对AI分析引擎和行为沙箱系统
- 增强特性:字符变异、数据溢出和内容混淆技术
- 新增对抗样本生成支持,可绕过CNN图像分类模型
- 增加环境指纹识别和延时执行机制
- **性能提升**:
- payload总量从300+增加到500+
- 优化内存占用和去重算法
- 提高有效载荷生成速度
## v1.2.0 更新内容
### v1.0.0 (初始版本)
**架构重构**
- 采用策略模式重写,代码结构更清晰
- 新增配置面板,可自定义测试范围
- 支持 Burp Suite 深色主题
- 基础的文件上传漏洞Fuzz功能
- 支持WAF绕过、系统特性利用和内容欺骗等技术
- 300+种有效Payload
**功能增强**
- 新增后端语言选择(PHP/ASP/ASPX/JSP)
- 新增 14 种独立的 Fuzz 策略,可单独启用/禁用
- payload 数量提升至 1000+
- 优化去重算法,减少无效请求
## 功能概述
**新增测试点**
- 双写绕过:`pphphp`、`aspasp`
- form-data 污染:多分号、脏数据替换
- 未闭合引号:`filename="shell.php`
- URL 编码 Content-Type:`image%2Fphp`
- 配置文件内容注入:.htaccess / .user.ini 实际利用内容
本Burp Suite插件专为文件上传漏洞检测设计,提供自动化Fuzz测试,共500+条payload。效果如图
![14](./assets/14.png)
## 测试覆盖范围
主要包含以下攻击向量:
### 后缀绕过
- 可执行扩展名变体:php3/php5/phtml/phar/asa/cer/ashx/jspx 等
- 大小写混淆:pHp、PhP、aSp、JsP
- 双写绕过:pphphp、aspasp、jspjsp
- 特殊字符:空格、点号、分号(`shell.php.`、`shell.php;.jpg`)
- 空字节截断:`shell.php%00.jpg`
### 🛡️ WAF绕过技术
- **后缀变异**:ASP/ASPX/PHP/JSP后缀混淆(空字节、双扩展名、特殊字符等)
- **内容编码**:MIME编码、Base64编码、RFC 2047规范绕过
- **协议攻击**:HTTP头拆分、分块传输编码、协议走私
- **字符变异**:引号混淆、特殊字符插入、换行截断技术
- **数据溢出**:超长文件名、边界溢出测试、重复参数定义
### 请求头操控
- Content-Disposition 大小写:`ConTENT-DisPoSition`
- form-data 污染:删除、替换为脏数据、多分号
- filename 参数:双 filename、空 filename、未闭合引号、多等号
- 换行注入:`filename\n="shell.php"`
### 🖥️ 系统特性利用
- **Windows特性**:
- NTFS数据流(::$DATA)
- 保留设备名(CON, AUX)
- 长文件名截断
- **Linux特性**:
- Apache多级扩展解析
- 路径遍历尝试
- 点号截断攻击
### Content-Type 绕过
- MIME 类型伪造:image/gif、image/png、application/octet-stream
- URL 编码:`image%2Fgif`、`image%2Fphp`
- 双重 Content-Type 头
- 大小写变换
### 🎭 内容欺骗
- 魔术字节注入(GIF/PNG/PDF头)
- SVG+XSS组合攻击
- 文件内容混淆(注释插入、编码变异)
- .user.ini和.htaccess利用
### 系统特性利用
### ☁️ 云环境绕过
- **对象存储绕过**:S3/Azure元数据标头注入
- **容器化环境**:Docker/Kubernetes路径遍历技术
- **Serverless绕过**:云函数临时存储利用
- **容器逃逸**:特权路径访问尝试
**Windows**
- NTFS 数据流:`shell.php::$DATA`
- IIS 分号解析:`shell.asp;.jpg`
- 保留设备名:con.php、aux.asp
- 尾部空格/点号
### 🤖 高级防御绕过
- **AI模型对抗**:
- 对抗性噪声技术
- 语义扰动文件名
- GAN混合文件标记
- **沙箱检测绕过**:
- 环境指纹识别
- CPU/内存检测逃逸
- 延时触发机制(3600-7200s)
- **行为分析逃逸**:多层编码与加密技术
**Linux**
- Apache 多扩展名:`shell.php.jpg`
- 路径穿越:`../shell.php`
- 隐藏文件:`.shell.php`
## 安装方法
### 编码绕过
- URL 编码扩展名:`%70%68%70`
- 双重 URL 编码
- MIME 编码(RFC 2047)
- Unicode 字符替换
1. 确保已安装Burp Suite Professional
2. 在Burp Extender中点击"Add"
3. 选择下载的`Upload_Auto_Fuzz.py`文件
4. 点击"Next"直到安装完成
### 配置文件上传
- `.htaccess`:SetHandler 解析任意文件为 PHP
- `.user.ini`:auto_prepend_file 文件包含
- `web.config`:IIS handlers 配置
## 使用指南
### 文件内容
- 魔术字节注入:GIF89a、PNG 头、PDF 头
- WebShell 内容(可选)
- 图片头 + WebShell 组合
1. 拦截文件上传请求
2. 右键请求内容 → "Send to Intruder"
## 安装
3. Positions内将Content-Disposition开始,到文件内容结束的数据作为fuzz对象,如图
1. 下载 `Upload_Auto_Fuzz.py`
2. Burp Suite → Extender → Add
3. Extension type 选择 Python
4. 选择下载的文件,点击 Next
![11](./assets/11.png)
> 需要配置 Jython,参考 [Burp 官方文档](https://portswigger.net/burp/documentation/desktop/extensions)
4. 在Intruder的"Payloads"标签中选择:
```bash
Payload type: Extension-generated
Select generator: upload_auto_fuzz
## 使用方法
### 配置(可选)
安装后在 Burp 顶部菜单栏会出现 `Upload Fuzz` 标签页:
- **Target Backend Languages**:选择目标后端语言
- **Fuzzing Strategies**:启用/禁用特定测试策略
- **Include WebShell Content**:是否在 payload 中包含实际 WebShell 代码
### 测试步骤
1. 抓取文件上传请求,发送到 Intruder
2. 选中需要 Fuzz 的区域(建议选中整个文件部分):
```
Content-Disposition: form-data; name="file"; filename="test.jpg"
Content-Type: image/jpeg
[文件内容]
```
![13](./assets/13.png)
![positions](./assets/11.png)
5. 取消Payload encoding选择框,如图
3. Payloads 标签页配置:
- Payload type: `Extension-generated`
- Select generator: `Upload_Auto_Fuzz 1.2.0`
![12](./assets/12.png)
![payloads](./assets/13.png)
6. 开始攻击并分析响应
4. **重要**:取消勾选 `Payload Encoding`
## Payload分类说明
![encoding](./assets/12.png)
| 类别 | 样本payload | 检测目标 |
|---------------------|--------------------------------------|-----------------------|
| 后缀绕过 | `filename="test.asp;.jpg"` | 文件类型校验缺陷 |
| Content-Disposition | `content-Disposition: form-data` | 头解析大小写敏感性 |
| 魔术字节 | `GIF89a;<?php...` | 内容检测绕过 |
| 协议走私 | `Transfer-Encoding: chunked` | WAF协议解析差异 |
| 云环境绕过 | `filename="/var/run/secrets/kubernetes.io/shell.php"` | 容器环境安全缺陷 |
| AI防御对抗 | `/* StyleGAN2 latent code: ... */` | 深度学习模型绕过 |
| 沙箱检测 | `/* <?php if(sys_getloadavg()[0]<0.1) {...} */` | 动态分析环境检测 |
5. 开始攻击,根据响应长度/状态码筛选结果
## 作者信息
- **开发者**: T3nk0
## 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` | 修改服务器解析规则 |
## 策略说明
| 策略 | 描述 | 默认 |
|------|------|------|
| 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 | 配置文件上传 | ✓ |
## 注意事项
- 部分 payload 可能触发 WAF 告警,建议在测试环境使用
- WebShell 内容功能默认开启,正式测试前确认授权
- 某些 payload 依赖特定服务器配置才能生效
## 更新日志
- **v1.2.0** - 架构重构,新增配置面板,策略模式,1000+ payload
- **v1.1.0** - 新增云环境绕过、AI 防御对抗模块
- **v1.0.0** - 初始版本,基础 Fuzz 功能
## 作者
T3nk0
## 免责声明
本工具仅限授权测试使用,禁止用于非法用途。使用者需遵守当地法律法规,开发者不承担任何滥用责任。
本工具仅用于授权的安全测试。使用者需确保已获得目标系统的测试授权,并遵守相关法律法规。作者不对任何滥用行为负责。
## Star History
[![Star History Chart](https://api.star-history.com/svg?repos=T3nk0/Upload_Auto_Fuzz&type=Date)](https://star-history.com/#T3nk0/Upload_Auto_Fuzz&Date)
+2092 -1454
View File
File diff suppressed because it is too large. Load diff