Tktirth/AI-VULN.-SCANNER-V2
GitHub: Tktirth/AI-VULN.-SCANNER-V2
一款基于 Python 和 Streamlit 构建的 Web 漏洞扫描框架,结合 ML 驱动的 CVSS 评分对 Web 应用进行全面的安全评估。
Stars: 0 | Forks: 0
# 🛡️ AI 漏洞扫描器 V2
### 智能化 Web 应用安全评估框架
[](https://python.org)
[](https://streamlit.io)
[](LICENSE)
[](SECURITY.md)
## 🎯 概述
AI 漏洞扫描器 V2 是一个专业级的、基于 AI 的 Web 应用安全测试框架。它将传统的漏洞检测技术与机器学习分类相结合,提供准确、可操作的安全评估。
### 特色优势
| 功能 | 传统扫描器 | **AI 漏洞扫描器 V2** |
|---------|---------------------|----------------------|
| 漏洞分类 | 基于规则的严重程度 | **基于 ML 的 CVSS 评分**(使用 NVD 训练的模型) |
| CDN 检测 | ❌ 无 | **自动 CDN/WAF 指纹识别**并发现源站 IP |
| 存储型 XSS | 单次扫描 | **两步式:注入 → 验证**检测 |
| IDOR 测试 | 基础参数模糊测试 | **认证上下文差异化分析** |
| IP 情报 | ❌ 无 | **全面侦察:ASN、PTR、CDN 绕过、内部 IP 泄露** |
| 身份验证 | 仅限 Cookie | **表单登录、Cookie、Bearer token** 并带有会话验证 |
## 🏗️ 架构
```
┌─────────────────────────────────────────────────────────────────┐
│ Streamlit Dashboard (app.py) │
│ Real-time progress · Vuln cards · Filters │
└──────────────────────┬──────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ Scanner Engine V2 (Orchestrator) │
│ │
│ Phase 0 ─── IP Recon ──────── DNS · CDN · ASN · Origin IP │
│ Phase 1 ─── Authentication ── Form · Cookie · Token │
│ Phase 2 ─── Crawling ──────── BFS · Auth-aware · Depth 3 │
│ Phase 3 ─── Directories ───── 40+ sensitive paths │
│ Phase 4 ─── Headers ───────── Security header audit │
│ Phase 5 ─── Per-page ──────── XSS · SQLi · Open Redirect │
│ Phase 6 ─── Stored XSS ────── Two-pass inject/verify │
│ Phase 7 ─── IDOR ──────────── Auth differential fuzzing │
│ Phase 7b ── IP Leakage ────── Headers · HTML · JS · JSON │
│ Phase 8 ─── AI Classification ML CVSS · CWE · Dedup │
└─────────────────────────────────────────────────────────────────┘
```
## 🔍 模块
### 🔎 IP 情报 (阶段 0)
在任何爬取开始之前运行的预扫描侦察。
| 组件 | 功能 |
|-----------|-----------|
| **IP 解析器** | DNS A/AAAA 解析、反向 DNS (PTR)、ASN/RDAP 查询(组织、国家) |
| **CDN 检测器** | 通过响应头识别 8 家 CDN 提供商的指纹(Cloudflare、CloudFront、Akamai、Fastly、Azure、GCP、Sucuri、Imperva) |
| **CDN 绕过** | 通过 crt.sh SSL 证书历史记录、HackerTarget DNS 历史记录、MX/SPF/NS 记录分析发现源站 IP |
| **IP 泄露** | 检测 headers、HTML、JS 文件和 JSON API 响应中的私有 IP(RFC1918、loopback、link-local) |
### ⚡ 漏洞检测器 (阶段 3-7)
| 检测器 | 技术 | CWE |
|----------|-----------|-----|
| **跨站脚本攻击 (XSS)** | 11 个 payload,URL 参数 + 表单字段,反射检测 | CWE-79 |
| **存储型 XSS** | 两步式:注入标记 → 在其他页面验证 | CWE-79 |
| **SQL 注入** | 基于错误(28 种数据库错误模式)+ 基于布尔的差异化检测 | CWE-89 |
| **开放重定向** | 22 个重定向参数 × 4 个 payload,服务端 + 客户端检查 | CWE-601 |
| **IDOR** | ID 模糊测试(数字 ±1/±2/+100,UUID),认证与未认证差异化对比 | CWE-639 |
| **目录枚举** | 40+ 敏感路径(.env、.git、/admin、API endpoint) | CWE-548 |
| **安全 Headers** | 缺失及薄弱 header 审计(HSTS、CSP、X-Frame-Options 等) | CWE-693 |
| **内部 IP 泄露** | 4 源扫描:HTTP headers、HTML/注释、JS bundle、JSON API | CWE-200 |
### 🤖 AI 分类 (阶段 8)
- **GradientBoosting 分类器**,基于 NVD 衍生的参考数据进行训练(22 种漏洞类型 × 45 个样本)
- 输出:CVSS 3.1 评分、严重性评级、CWE ID、置信度水平
- 对 `(type, url, parameter)` 元组进行自动去重
## 🚀 快速开始
### 前置条件
- Python 3.10+
- pip
### 安装说明
```
# Clone repository
git clone https://github.com/Tktirth/AI-VULN.-SCANNER-V2.git
cd AI-VULN.-SCANNER-V2
# 安装依赖
pip install -r requirements.txt
# 启动 scanner
streamlit run app.py
```
### Docker 部署(推荐)
您可以使用 Docker 在容器化环境中运行扫描器。
```
# Clone repository
git clone https://github.com/Tktirth/AI-VULN.-SCANNER-V2.git
cd AI-VULN.-SCANNER-V2
# 使用 Docker Compose 构建并启动
docker compose up -d
# 或者使用 raw Docker commands 构建并运行
docker build -t ai-vuln-scanner .
docker run -d -p 8501:8501 --name vuln-scanner ai-vuln-scanner
```
应用程序将在 `http://localhost:8501` 提供。
### 通过 GitHub Actions 进行云部署 (GCP Cloud Run)
此仓库包含一个自动化 CI/CD 流水线(`.github/workflows/cloud-run-deploy.yml`),每当将更改推送到 `main` 分支时,它都会自动将应用程序部署到 Google Cloud Run。
**设置说明:**
1. 在您的 Google Cloud 项目中创建一个 Service Account(`web-vulnarebility-scanner`)。
2. 授予它以下角色:
- Cloud Run Admin (`roles/run.admin`)
- Cloud Build Service Account (`roles/cloudbuild.builds.builder`)
- Artifact Registry Administrator (`roles/artifactregistry.admin`)
- Service Account User (`roles/iam.serviceAccountUser`)
3. 为此 Service Account 生成一个 JSON 密钥。
4. 进入您的 GitHub 仓库 -> **Settings** -> **Secrets and variables** -> **Actions** -> **New repository secret**。
5. 将密钥命名为 `GCP_CREDENTIALS`,并粘贴整个 JSON 密钥作为值。
配置完成后,将代码推送到 `main` 分支将自动构建应用程序并将其部署到 Cloud Run。
### 用法
1. 在主输入框中**输入目标 URL**
2. 在侧边栏中**配置模块**(默认全部启用)
3. 如果目标需要登录,请**设置身份验证**
4. **点击 ▶ SCAN** 并实时查看进度
5. 通过严重性过滤器、CVSS 图表和详细的修复建议**审查发现**
6. **导出** JSON 报告以进行离线分析
## 🔐 认证模式
| 模式 | 用例 | 配置 |
|------|----------|--------|
| **无** | 面向公众的扫描 | 默认 |
| **表单登录** | 带有用户名/密码的登录页面 | 登录 URL + 凭证 + 可选的已登录指示器 |
| **Cookie** | 预先存在的会话 cookie | 粘贴 `name=value` 键值对 |
| **Bearer Token** | API token / JWT | Token 值 + 认证方案(Bearer、Token、Basic、ApiKey) |
## 📊 输出
### 实时仪表板
- 逐阶段的终端输出**实时进度**
- **IP 情报面板**,显示目标 IP、ASN、CDN 状态以及源站 IP 发现
- **漏洞卡片**,带有严重性徽章、CVSS 进度条、CWE 标签、payload 和修复建议
- 按严重性、漏洞类型和 CWE ID 进行**过滤**
- 用于一目了然风险评估的 **CVSS 分布图表**
### JSON 报告
结构化导出,包含:
```
{
"report_metadata": { "tool", "version", "target", "timestamp" },
"executive_summary": { "risk_level", "severity_breakdown", "stats" },
"reconnaissance": {
"target_intelligence": { "ip", "asn", "ptr", "country" },
"cdn_detection": { "provider", "bypass_possible", "origin_ip" },
"ssl_cert_domains": ["subdomain1.example.com", "..."],
"dns_records": { "mx", "ns", "spf" }
},
"vulnerabilities": [ { "type", "severity", "cvss", "cwe", "evidence", "remediation" } ],
"remediation_priority": [ { "type", "count", "max_severity" } ],
"cwe_summary": [ { "cwe_id", "count", "max_cvss" } ]
}
```
## 📁 项目结构
```
AI-VULN.-SCANNER-V2/
├── app.py # Streamlit dashboard UI
├── scanner_engine.py # Scan orchestrator (8 phases)
├── crawler.py # BFS web crawler with auth support
├── requirements.txt # Python dependencies
│
├── recon/ # Phase 0: IP Intelligence
│ ├── __init__.py
│ ├── ip_resolver.py # DNS resolution + CDN detection + ASN
│ └── cdn_bypass.py # Origin IP discovery (5 methods)
│
├── detectors/ # Phases 3-7: Vulnerability Detectors
│ ├── __init__.py
│ ├── xss_detector.py # Reflected + Stored XSS
│ ├── sql_detector.py # Error-based + Boolean SQLi
│ ├── header_detector.py # Security header audit
│ ├── redirect_detector.py # Open redirect detection
│ ├── directory_detector.py # Sensitive path enumeration
│ ├── idor_detector.py # IDOR fuzzing
│ └── ip_leakage.py # Internal IP exposure (CWE-200)
│
├── ai/ # Phase 8: ML Classification
│ └── vulnerability_ai.py # GradientBoosting CVSS classifier
│
├── auth/ # Authentication engine
│ └── auth_manager.py # Form/cookie/token auth
│
├── utils/ # Shared utilities
│ ├── request_manager.py # HTTP session management
│ └── payloads.py # Payloads, wordlists, signatures
│
├── reports/ # Report generation
│ └── report_generator.py # JSON report builder
│
├── SECURITY.md # Security policy
├── CONTRIBUTING.md # Contribution guidelines
└── LICENSE # MIT License
```
## 🛡️ 道德使用与法律声明
此工具仅用于**授权的安全测试和教育目的**。
- ✅ 扫描您自己的应用程序
- ✅ 在获得明确的书面授权后进行扫描
- ✅ 用于安全研究和教育
- ❌ **严禁未经许可进行扫描**
- ❌ **严禁用于未经授权的访问**
- ❌ **严禁用于恶意目的**
未经授权的计算机访问在 **Computer Fraud and Abuse Act (CFAA)**、**UK Computer Misuse Act** 以及全球同等法律下均属违法行为。作者对滥用行为**不承担任何责任**。
## 📄 许可证
本项目基于 MIT 许可证授权 — 详情请参阅 [LICENSE](LICENSE) 文件。
基于 AI 的漏洞扫描器,具备基于 ML 的 CVSS 评分、认证扫描、CDN/WAF 绕过检测以及全面的攻击面映射功能。
**⚠️ 仅限授权使用** — 仅扫描您拥有或获得明确书面测试许可的目标。
由安全爱好者构建,为安全专业人士服务。
标签:Apex, CISA项目, DOE合作, Kubernetes, Python, Web安全, 加密, 安全测试, 攻击性安全, 文件查看, 无后门, 机器学习, 漏洞扫描器, 蓝队分析, 请求拦截, 逆向工具