HaakimSec/GoUpload
GitHub: HaakimSec/GoUpload
GoUpload 是一款高性能的并发文件上传漏洞扫描器,帮助安全测试人员快速检测 Web 应用文件上传功能中的各类安全缺陷。
Stars: 2 | Forks: 0
# GoUpload 🚀
**Web 应用文件上传安全测试工具**
一款使用 Go 语言编写的高性能、并发文件上传漏洞扫描器。可测试 107+ 种文件上传漏洞,包括扩展名绕过、Content-Type 欺骗、magic bytes、路径遍历等。



## ⚡ 功能
- 🎯 **智能指纹识别** - 自动检测目标技术栈(PHP、ASP.NET、Java、Node.js)
- 🧪 **107+ Payload** - 涵盖 7 个攻击模块的综合测试矩阵
- 🚀 **极速扫描** - 支持配置 worker 的并发测试(107 项测试在 <200ms 内完成)
- 🎨 **精美输出** - 彩虹 ASCII art 横幅及彩色结果展示
- 🔍 **智能检测** - 多标志 oracle 系统,确保准确的漏洞评估
- 📊 **基准比较** - 将响应与合法上传进行比较
- 🌍 **跨平台** - 支持 Linux、Windows 和 macOS
## 📦 安装
### 方法 1:Go Install(推荐)
```
go install -v github.com/HaakimSec/GoUpload@latest
```
安装完成后,请运行:
```
GoUpload --help
```
### 方法 2:从源码编译
```
# Clone 仓库
git clone https://github.com/HaakimSec/GoUpload.git
cd GoUpload
# Build
go build -o GoUpload main.go
# 移动到 PATH(可选)
sudo mv GoUpload /usr/local/bin/
```
### 方法 3:下载二进制文件
从 [Releases](https://github.com/HaakimSec/GoUpload/releases) 下载预编译的二进制文件:
```
# Linux (amd64)
wget https://github.com/HaakimSec/GoUpload/releases/download/v1.0.0/GoUpload_linux_amd64
chmod +x GoUpload_linux_amd64
sudo mv GoUpload_linux_amd64 /usr/local/bin/GoUpload
# macOS (amd64)
wget https://github.com/HaakimSec/GoUpload/releases/download/v1.0.0/goupload_darwin_amd64
chmod +x GoUpload_darwin_amd64
sudo mv GoUpload_darwin_amd64 /usr/local/bin/GoUpload
# Windows (amd64)
# 从 Releases 下载 GoUpload_windows_amd64.exe
```
### 验证安装
```
GoUpload --help
```
您将会看到彩虹 ASCII art 横幅!🌈
## 🛠️ 用法
```
GoUpload -u -p [flags]
Flags:
-u, --url Target upload endpoint URL (required)
-p, --param Name of the file parameter (default: "file")
-t, --tech Target tech stack: php, asp.net, java, nodejs, python, all, auto
--auto-detect Auto-detect tech stack before testing
-c, --concurrency Number of concurrent workers (default: 10)
--allow-list Comma-separated allowed extensions for baseline
-H, --headers Custom headers (key:value or JSON file)
-d, --data Additional form fields (key=value)
-h, --help Show help
```
## 🔍 示例输出
```
____ _ _ _ _
/ ___| ___ | | | |_ __ | | ___ __ _ __| |
| | _ / _ \ | | | | '_ \| |/ _ \ / _` |/ _` |
| |_| | (_) || |_| | |_) | | (_) | (_| | (_| |
\____|\___/ \___/| .__/|_|\___/ \__,_/\__,_|
|_|
⚡ Web Application File Upload Security Tester ⚡
SUMMARY
Total Tests: 68
Safe: 0
Suspect: 3
Vulnerable: 65
Errors: 0
Avg Response Time: 0.010s
Total Elapsed: 185ms
⚠ Potential vulnerabilities detected — manual verification recommended!
```
## 🎯 漏洞检测
### GoUpload 可检测:
- ✅ 无限制文件上传
- ✅ 扩展名黑名单绕过
- ✅ Content-Type 验证绕过
- ✅ Magic byte 验证绕过
- ✅ 双扩展名漏洞
- ✅ 文件名中的路径遍历
- ✅ Null byte 注入
- ✅ 文件大小限制绕过
- ✅ 通过文件上传实现存储型 XSS
- ✅ ZIP slip 攻击
- ✅ Unicode/RTLO 规避
## 🔬 已测试平台
- ✅ 自定义漏洞靶场(PHP/Apache)
- ✅ DVWA (Damn Vulnerable Web Application)
- ✅ Juice Shop (OWASP)
- ✅ Upload-Labs (GitHub)
## 🏗️ 架构
```
GoUpload/
├── main.go # Entry point
├── internal/
│ ├── config/ # CLI parsing & configuration
│ ├── fingerprint/ # Tech stack auto-detection
│ ├── oracle/ # Vulnerability analysis engine
│ ├── output/ # Terminal output & formatting
│ ├── payload/ # Attack payloads (7 modules)
│ ├── types/ # Data structures
│ └── worker/ # Concurrent HTTP worker pool
├── go.mod
└── go.sum
```
## 🚀 性能
- **107 个 payload** 耗时约 200ms(localhost)
- 默认 **10 个并发 worker**
- 针对网络目标可**扩展**至 50+ 个 worker
- **内存高效**(完整扫描 <50MB)
## 📋 环境要求
- Go 1.25 或更高版本
- 网络连接(用于访问目标)
## 📄 许可证
MIT 许可证 - 详见 [LICENSE](https://license/) 文件
## ⚠️ 免责声明
本工具仅供安全专业人员和渗透测试人员使用。在测试任何系统之前,请务必获得适当的授权。作者不对因使用本工具而造成的任何误用或损害负责。
## 👤 作者
**@haakimsec**
**GitHub**: github.com/HaakimSec
**⭐ 如果您觉得此工具很有用,请给该仓库点个 Star!**标签:CISA项目, Go, Ruby工具, Web安全, 文件上传漏洞, 日志审计, 蓝队分析