ogarridojimenez/vulnscanner

GitHub: ogarridojimenez/vulnscanner

一款零外部依赖的 Go 命令行 Web 漏洞扫描工具,整合端口扫描、安全头检测、TLS 检查、目录发现及 SQLi/XSS 检测。

Stars: 0 | Forks: 0

# VulnScanner 🔍 `vulnscan` 是一个 CLI 工具,用于审计 Web target 是否存在常见漏洞:开放端口、缺失的安全头、TLS/SSL 问题、隐藏目录以及基本的 SQLi/XSS 检测。 受 `nmap` + `nuclei` 启发,但只有一个不依赖 CGO 的二进制文件,runtime 零外部依赖。 ## 安装 ``` # 从 release curl -LO https://github.com/ogarridojimenez/vulnscanner/releases/latest/download/vulnscan_linux_amd64 chmod +x vulnscan_linux_amd64 && sudo mv vulnscan_linux_amd64 /usr/local/bin/vulnscan # 或从源码编译 git clone https://github.com/ogarridojimenez/vulnscanner.git cd vulnscanner && go build -o vulnscan ./cmd/vulnscanner/ ``` ## 使用方法 ``` # 基础扫描 vulnscan scan example.com # 完整扫描(所有模块) vulnscan scan example.com --full # 使用 workers 和特定端口扫描 vulnscan scan example.com --ports 80,443,8080,8443 --workers 20 # 输出为 JSON vulnscan scan example.com --full --output report.json # 输出为 PDF vulnscan scan example.com --full --format pdf -o report.pdf # 历史记录和统计信息 vulnscan history vulnscan summary vulnscan report --format pdf # 数据库管理 vulnscan db init vulnscan db check ``` ## 模块 | 模块 | 描述 | 典型严重程度 | |--------|-------------|-----------------| | **Port Scan** | 并发 TCP 扫描,带服务检测(25+ 个常见端口) | INFO | | **Security Headers** | 检查 12 个 OWASP 头(HSTS、CSP、XFO 等) | 缺失则为 MEDIUM | | **TLS Check** | TLS 版本、加密、过期时间、证书链 | 过期则为 HIGH | | **Directory Fuzzing** | 30 条常见路径,检测 200/403/301 | 发现则为 MEDIUM | | **SQLi Detection** | 13 个 payload,基于反射检测 | 反射则为 HIGH | | **XSS Detection** | 11 个 payload,基于反射检测 | 反射则为 HIGH | ## 全局 Flags | Flag | 默认值 | 描述 | |------|---------|-------------| | `--workers` / `-w` | 10 | 并发 Workers | | `--timeout` | 5s | 每次请求的 Timeout | | `--cookie` | — | 用于已认证扫描的 Cookie | | `--db` | `~/.vulnscanner/history.db` | 数据库路径 | | `-v` / `--verbose` | false | 详细输出 | ## 架构 ``` cmd/vulnscanner/ → CLI (Cobra) internal/config/ → Configuración y defaults internal/models/ → Dominio (Target, Result, ScanReport) internal/scanner/ → 6 módulos de escaneo con worker pool internal/reporter/ → JSON y PDF internal/storage/ → SQLite CGO-free rules/ → Payloads SQLi/XSS ``` **原则:** - ✅ 无 CGO — 100% 可移植的二进制文件 - ✅ 使用 goroutines + worker pool fan-out 实现真正的并发 - ✅ 采用独立接口的简洁架构 - ✅ 本地 SQLite 存储用于保存历史记录 - ✅ JSON 和 PDF 报告 - ✅ 使用 mock httptest 服务器进行测试 - ✅ Docker 多阶段构建 - ✅ 使用 GitHub Actions 进行 CI/CD ## 技术栈 | 组件 | 库 | |------------|----------| | CLI Framework | `spf13/cobra` | | 彩色输出 | `fatih/color` | | PDF 报告 | `go-pdf/fpdf` | | 数据库 | `ncruces/go-sqlite3`(无 CGO) | ## 许可证 MIT
标签:EVTX分析, 日志审计, 请求拦截