HaakimSec/GoUpload

GitHub: HaakimSec/GoUpload

GoUpload 是一款高性能的并发文件上传漏洞扫描器,帮助安全测试人员快速检测 Web 应用文件上传功能中的各类安全缺陷。

Stars: 2 | Forks: 0

# GoUpload 🚀 **Web 应用文件上传安全测试工具** 一款使用 Go 语言编写的高性能、并发文件上传漏洞扫描器。可测试 107+ 种文件上传漏洞,包括扩展名绕过、Content-Type 欺骗、magic bytes、路径遍历等。 ![Go 版本](https://img.shields.io/badge/Go-1.25+-00ADD8?logo=go) ![许可证](https://img.shields.io/badge/License-MIT-green) ![版本](https://img.shields.io/badge/Version-1.0.0-blue) ## ⚡ 功能 - 🎯 **智能指纹识别** - 自动检测目标技术栈(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安全, 文件上传漏洞, 日志审计, 蓝队分析