UploadRanger
Professional file upload vulnerability testing tool with 263+ bypass techniques, proxy capture, dynamic scanning(专业的文件上传漏洞检测工具,支持263+绕过技术、代理抓包、动态扫描)
Install / Use
/learn @Gentle-bae/UploadRangerREADME

UploadRanger
一款专业的文件上传漏洞检测工具,支持多种绕过技术检测和自动化扫描。

功能特性
- 智能扫描:自动检测上传点,分析响应内容

- 代理抓包:内置 HTTP/HTTPS 代理,支持拦 截、修改、重放

- Repeater:手动重放请求,调试绕过技术

- Intruder:自动化爆破,支持多种攻击模式

- 263+ 绕过技术:支持各种文件类型绕过、Content-Type 绕过、WAF 绕过等

- Payload生成器:支持WebShell、Polyglot等多种载荷生成

- 暗色主题:现代化 UI 设计,长时间使用不疲劳
安装
环境要求
- Python 3.8+
- Windows / Linux / macOS
安装依赖
pip install -r requirements.txt
或者手动安装:
pip install "httpx[http2,brotli]>=0.24.0"
pip install "httpcore[asyncio]>=0.17.0"
pip install mitmproxy>=10.0.0
pip install PySide6>=6.4.0
pip install beautifulsoup4>=4.11.0
pip install Pillow>=9.0.0
pip install lxml>=4.9.0
运行程序
python main.py
或者双击运行 UploadRanger.bat (Windows) 或 UploadRanger.sh (Linux/macOS)
使用说明
1. 智能扫描
- 在左侧输入目标 URL
- 选择扫描模式(快速/标准/深度)
- 点击"开始扫描"
- 查看扫描结果和漏洞详情
2. 代理抓包
启动代理
- 切换到"代理"标签页
- 点击"启动代理"按钮
- 将浏览器代理设置为
127.0.0.1:8080
HTTPS 证书安装(Windows)
首次使用 HTTPS 抓包必须安装证书!
- 启动代理后,浏览器访问
http://mitm.it(注意是 http 不是 https) - 点击 Windows 图标下载证书文件(
mitmproxy-ca-cert.p12) - 双击下载的证书文件,打开证书导入向导
- 存储位置选择:当前用户,点击下一步
- 密码留空,点击下一步
- 关键步骤:选择"将所有的证书都放入下列存储"
- 点击"浏览",选择"受信任的根证书颁发机构"
- 点击确定 -> 下一步 -> 完成
- 弹出安全警告时点击"是"
- 重启浏览器,HTTPS 抓包即可生效
抓包操作
- 拦截模式:开启"拦截请求"后,HTTP/HTTPS 请求会被暂停,等待放行
- 放行 (Forward):点击放行按钮,请求继续发送到服务器
- 丢弃 (Drop):点击丢弃按钮,请求被丢弃
- 修改后放行:在请求详情区域修改请求内容,然后点击放行
- 右键菜单:在拦截列表或历史列表中右键,可发送到 Repeater/Intruder
发送到其他模块
- 在拦截列表或历史列表中选中请求
- 右键选择"发送到 Repeater"或"发送到 Intruder"
- 或点击工具栏的"发送到 Repeater"按钮
3. Repeater 重放
- 切换到"重放"标签页
- 编辑请求内容
- 点击"发送请求"
- 查看响应结果
4. Intruder 爆破
- 切换到"爆破"标签页
- 在请求模板中用
$标记 payload 位置(如$shell.php$) - 配置 payload 列表
- 选择攻击模式
- 点击"开始攻击"
攻击模式说明
- Sniper (狙击手):单点爆破,依次替换每个标记位置
- Battering Ram (攻城锤):全部替换,所有标记位置使用相同 payload
- Pitchfork (草叉):一一对应,多个 payload 列表按位置一一对应
- Cluster Bomb (集束炸弹):笛卡尔积,所有 payload 组合
常见问题
Q: 代理启动报错 "no running event loop"
A: 这是 asyncio 与 QThread 的兼容性问题,已在 v1.0.0 中修复。如果仍有问题,请确保使用的是最新版本。
Q: HTTPS 网站无法访问,提示证书错误
A: 需要安装 mitmproxy 证书。请按照上面的"HTTPS 证书安装"步骤操作。
Q: 停止代理按钮没反应
A: 这是跨线程停止的问题,已在 v1.0.0 中修复。使用 call_soon_threadsafe 实现安全停止。
Q: 发送到 Repeater 报错 "httpcore[asyncio]"
A: 需要安装 httpcore 的异步组件:
pip install "httpcore[asyncio]>=0.17.0"
Q: 扫描速度太慢
A: 可以在设置中调整线程数,或者使用"快速"扫描模式。
Q: 如何更新 payload 列表
A: 可以在 payloads/ 目录下编辑对应的 Python 文件,添加自定义 payload。
Q: 放包后包仍显示在列表中
A: 这是已修复的问题。放包后包会从拦截列表中移除,并在历史列表中显示。
Q: 历史记录显示"无响应"
A: 确保代理正在运行,并且请求已经收到响应。响应会在收到后自动更新到历史记录中。
项目结构
UploadRanger/
├── main.py # 程序入口
├── config.py # 全局配置文件
├── requirements.txt # 依赖列表
├── README.md # 说明文档
├── gui/ # GUI 模块
│ ├── main_window.py # 主窗口
│ ├── proxy_widget.py # 代理模块
│ ├── repeater_widget.py # 重放模块
│ ├── intruder_widget.py # 爆破模块
│ ├── traffic_viewer.py # 流量查看器
│ ├── syntax_highlighter.py # 语法高亮
│ └── themes/ # 主题
│ └── dark_theme.py # 暗色主题
├── core/ # 核心模块
│ ├── scanner.py # 扫描器
│ ├── http_client.py # HTTP 客户端
│ ├── async_scanner.py # 异步扫描器
│ ├── async_http_client.py # 异步 HTTP 客户端
│ ├── response_analyzer.py # 响应分析器
│ ├── async_response_analyzer.py # 异步响应分析器
│ ├── async_scanner_worker.py # 异步扫描工作线程
│ ├── config_manager.py # 配置管理器,支持JSON格式配置持久化
│ ├── models.py # 数据模型
│ └── form_parser.py # 表单解析器
├── payloads/ # Payload 模块
│ ├── webshells.py # WebShell 生成器
│ ├── bypass_payloads.py # 绕过 payload 生成器
│ └── polyglots.py # 多语言 payload 生成器
└── test_range/ # 测试靶场
├── app.py # Flask 靶场应用
└── templates/ # HTML 模板
依赖说明
核心依赖
- PySide6: GUI 框架
- mitmproxy: HTTP/HTTPS 代理引擎
- httpx: 异步 HTTP 客户端
- httpcore[asyncio]: httpx 的异步后端
其他依赖
- beautifulsoup4: HTML 解析
- lxml: XML/HTML 解析
- Pillow: 图像处理
更新说明(v1.0.5)
当前版本:v1.0.5(2026-03-24)。本次重点升级“成功判定”链路:采用证据分层与冲突裁决,优先识别结构化 JSON 成功信号(如 success=true、files 非空),并适配服务端重命名文件名进行多候选验证;结果页新增判定原因与置信等级提示。完整条目见 CHANGELOG.md。
免责声明
本工具仅供安全研究和授权测试使用。使用本工具进行未经授权的测试是违法的。作者不对任何非法使用承担责任。
许可证
MIT License
作者
by bae
📧 联系方式:1073723512@qq.com
打包为可执行文件
单文件版本(推荐测试用)
python build_exe.py --onefile
打包后的文件位于 dist/UploadRanger.exe
目录版本(推荐发布用)
python build_exe.py
打包后的目录位于 dist/UploadRanger/,包含所有资源文件
清理构建文件
python build_exe.py --clean
Related Skills
node-connect
345.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
106.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
345.9kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
345.9kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
