文件上传功能几乎是每个 Web 应用都会提供的常规操作,但由此引发的文件上传漏洞却是常年霸榜的高危风险之一。手工测试不仅耗时,还容易遗漏那些藏在犄角旮旯的绕过姿势。UploadRanger 便是一款专攻此类场景的自动化检测工具,它把扫描、代理抓包、重放爆破与载荷生成整合进了一个深色主题的 GUI 里,让测试过程直观不少。
核心能力速览
智能扫描
工具会自动识别目标页面中的上传点,然后根据配置发起探测。你可以预设文件参数名、上传目录,甚至代入 Cookie 和代理。扫描过程会尝试几百种 payload,并在结果表格中直接列出文件名、类型、状态码、成功率以及推导出的路径——哪些成功了、哪些被拦下,一目了然。

代理抓包与拦截
内置的 HTTP/HTTPS 代理提供了类似经典抓包工具的操作体验。开启后会监听在 127.0.0.1:8080,你可以随时拦截请求、编辑后再放行,也可以直接把感兴趣的流量转发给 Repeater 或 Intruder 做进一步折腾。

Repeater 重放
在 Repeater 标签页中,手动构造或从代理导入的请求可以被反复发送。修改文件名、Content-Type 或请求体后立即查看响应,非常适合用来验证某种绕过技法的实际效果。比如下面这个请求,就是用 filename="shell.php" 配合 Content-Type: image/jpeg 发起的一次探测,响应中直接告诉我们“上传成功!文件路径: ./upload/shell.php”。


Intruder 爆破
Intruder 模块支持 Sniper(狙击手)等攻击模式,可针对特定位置进行 payload 替换爆破。下图中,我们针对文件名后缀依次尝试了 shell.php4、shell.php2 和 shell.php,三次请求均返回 200 状态码,轻松确认了双层扩展名绕过是否生效。

263+ 绕过招式
工具内置了丰富的绕过字典,涵盖大小写混淆(如 shell.PHP)、双写扩展名(shell.php.php)、特殊字符截断(shell.php%00、shell<php)等多种技巧。你可以在“绕过技术”标签页中按需生成变形文件名,也可以导出字典供其他工具使用。

Payload 生成器
光上传成功还不够,最终目的是拿到控制权。Payload 生成器预置了从简单 eval 一句话到 preg_replace、create_function 等十余种 PHP WebShell 模板,也支持批量生成。选择语言和 Shell 类型后,一键即可产出可直接用于上传的代码片段。

安装与环境
环境需求: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
Windows 用户也可直接双击 UploadRanger.bat,Linux/macOS 则运行 UploadRanger.sh。
由于 UploadRanger 套上了来自 PySide6 的现代化暗色界面,长时间盯着屏幕也不容易疲劳。工具本身完全开源,项目地址就在: https://github.com/Gentle-bae/UploadRanger 。如果你时常需要评估文件上传点的安全性,不妨把它纳入你的工具箱,自动化往往能帮你找出那些被手工测试忽略的角落。
|