roronoazoro-hacked/hawkeye-OWASP-scanner
GitHub: roronoazoro-hacked/hawkeye-OWASP-scanner
一款生产级Web漏洞扫描器,针对OWASP Top 10进行检测,支持被动/主动扫描模式、分类工作流和多格式报告导出。
Stars: 0 | Forks: 0
# 🦅 Hawkeye OWASP 扫描器




## 🔍 功能介绍
一款生产级 Web 漏洞扫描器,可针对 OWASP Top 10 对目标进行检测 — 这是全球公认的 Web 应用安全风险标准。由 Python 从零构建,带有基于浏览器的仪表板、登录保护和专业的报告功能。
## ✨ 功能特点
| 功能 | 描述 |
|---|---|
| 🔍 **OWASP Top 10 检查** | 涵盖所有 10 个类别 — A01 至 A10 |
| 🛡 **被动/主动模式** | 被动模式对任何目标都安全,主动模式会发送测试载荷 |
| ✅ **分类工作流** | 可将发现标记为已确认、误报或已接受风险 |
| 📄 **PDF 报告** | 执行摘要 + 完整技术发现 |
| ⚙ **SARIF 导出** | 兼容 Burp Suite、Jira、GitHub Advanced Security |
| { } **JSON 导出** | 机器可读的发现结果,便于流水线集成 |
| 🔐 **登录保护** | 基于会话的认证保护仪表板 |
| 📊 **扫描历史** | 所有扫描保存在 SQLite 中,支持差异比较 |
| ⚡ **并发扫描** | 最多可同时运行 2 个扫描 |
| 🔄 **扫描差异对比** | 比较同一目标的扫描结果 |
## 🖥 环境要求
在开始之前,请确保您已具备:
- **Python 3.10 或更高版本** — 从 https://www.python.org/downloads/ 下载
- **Git** — 从 https://git-scm.com/downloads 下载
- 终端(Windows 上使用 PowerShell,Mac/Linux 上使用 Terminal)
## 🚀 安装步骤
### 步骤 1 — 克隆仓库
```
git clone https://github.com/roronoazoro-hacked/hawkeye-OWASP-scanner.git
cd hawkeye-OWASP-scanner
```
### 步骤 2 — 创建虚拟环境
**Windows:**
```
python -m venv .venv
.venv\Scripts\activate
```
**Mac / Linux:**
```
python3 -m venv .venv
source .venv/bin/activate
```
当您在终端行首看到 `(.venv)` 时,即表示操作成功。
### 步骤 3 — 安装依赖
```
pip install -r requirements.txt
```
这将自动安装 Flask、BeautifulSoup、requests、reportlab 和所有其他必需的库。
### 步骤 4 — 运行扫描器
**Windows:**
```
python main.py
```
**Mac / Linux:**
```
python3 main.py
```
# 您应该看到:
OWASP Web Vulnerability Scanner
Open: http://127.0.0.1:5000
### 步骤 5 — 打开仪表板
打开浏览器并访问:
http://127.0.0.1:5000
### 步骤 6 — 登录
### 首次设置 — 创建您的 `.env` 文件
将 `.env.example` 复制为 `.env` 并设置您自己的凭据:
SCANNER_USERNAME=yourchoice
SCANNER_PASSWORD=yourpassword
然后运行扫描器。切勿分享您的 `.env` 文件。
## 📖 使用方法
### 运行扫描
1. 在输入框中输入目标 URL — 例如 `https://example.com`
2. 选择扫描模式:
- **🛡 被动模式** — 仅读取响应头和 HTML,对任何目标都安全
- **⚡ 主动模式** — 发送测试载荷,仅用于您拥有权限的目标
3. 点击 **▶ 扫描**
4. 实时观察各项检查运行 — 每个 OWASP 类别都会实时更新
### 查看结果
每个发现项显示:
- **严重程度** — CRITICAL / HIGH / MEDIUM / LOW / INFO
- **OWASP 类别** — 触发了哪条 Top 10 规则
- **详情** — 具体发现了什么
- **修复建议** — 如何修复该问题
- **请求/响应** — 确切的 HTTP 证据(点击展开)
### 分类发现结果
点击任意发现项展开,然后使用分类按钮:
- **✓ 已确认** — 真实漏洞,需要修复
- **✗ 误报** — 不是真正的问题
- **⚠ 已接受风险** — 已知问题,团队已接受
### 导出报告
扫描完成后,会出现三个导出按钮:
- **📄 PDF 报告** — 面向客户或管理层的专业报告
- **{ } JSON** — 机器可读的格式,便于自动化流水线使用
- **⚙ SARIF** — 可直接导入 Burp Suite、Jira 或 GitHub Advanced Security
## 🎯 支持的 OWASP 检查
| ID | 类别 | 检查内容 |
|---|---|---|
| A01 | 访问控制失效 | 敏感路径、管理面板、备份文件 |
| A02 | 加密失败 | HTTPS、HSTS、弱 TLS 配置 |
| A03 | 注入 | SQL 注入、XSS 载荷反射 |
| A05 | 安全配置错误 | 缺少安全头部、服务器版本泄露 |
| A06 | 易受攻击的组件 | 过时的 jQuery、已弃用的 JS 库 |
| A07 | 身份验证失败 | 默认凭据、缺少速率限制 |
| A09 | 日志记录和监控不足 | 暴露的日志文件、robots.txt 敏感路径 |
| A10 | SSRF | 接受外部地址的 URL 参数 |
## 🏗 项目结构
## hawkeye-OWASP-scanner/
├── main.py — Flask 服务器、登录系统、所有 API 路由
├── scanner.py — 扫描引擎、线程处理、SQLite 持久化
├── checks.py — 所有 OWASP 检测逻辑
├── reporter.py — PDF、JSON、SARIF 报告生成
├── requirements.txt
├── templates/
│ ├── index.html — 主扫描仪表板
│ └── login.html — 登录页面
└── scans.db — 自动创建的 SQLite 数据库(扫描历史)
## ⚙️ 配置
在项目文件夹中创建 `.env` 文件(从 `.env.example` 复制):
SCANNER_USERNAME=yourchoice
SCANNER_PASSWORD=yourpassword
切勿提交您的 `.env` 文件 — 它已自动列入 `.gitignore`。
## 🔒 法律声明
**仅扫描您拥有或已获得明确书面授权进行测试的目标。**
未经授权的扫描在您所在司法管辖区可能违法。
本工具仅用于教育目的和专业安全测试。
## 🛠 问题排查
**端口已被占用:**
```
# 修改 main.py 中的端口
app.run(host="0.0.0.0", port=5001)
```
**pip install 失败:**
```
pip install --upgrade pip
pip install -r requirements.txt
```
**登录后页面空白:**
- 请始终使用相同的地址 — 要么 `127.0.0.1:5000`,要么您的 IP,不要混用
- 尝试清除浏览器 Cookie 后重新登录
**扫描按钮无响应:**
- 打开浏览器开发者工具(F12)→ Console 选项卡 — 检查是否有红色错误
- 确保您已登录 `http://127.0.0.1:5000/login`
## 👨💻 作者
**Dhrumil Chheda**
- GitHub:[@roronoazoro-hacked](https://github.com/roronoazoro-hacked)
## 📄 许可证
MIT 许可证 — 可免费使用、修改和分发,但需注明出处。
标签:AMSI绕过, Flask, GPT, OWASP Top 10, PDF报告, Python, SARIF, Snort++, Splunk, SQLite, Talos规则, Web安全, 主动扫描, 加密, 威胁检测, 安全测试, 实时处理, 密码管理, 攻击性安全, 无后门, 漏洞扫描器, 漏洞管理, 网络安全, 蓝队分析, 被动扫描, 逆向工具, 隐私保护