NanuOp/Web-Vulnerability-Scanner
GitHub: NanuOp/Web-Vulnerability-Scanner
一款基于 Python 的 Web 漏洞侦察扫描器,自动化映射与识别常见安全缺陷。
Stars: 0 | Forks: 0
# 🔍 Web 漏洞扫描器




## ⚠️ 法律声明
## 功能说明
扫描器自动化了 Web 应用程序渗透测试的侦察和初始探测阶段。它会爬取目标 URL,映射所有输入点,分析 HTTP 响应并生成优先级报告——涵盖评估过程中手动测试人员在第一阶段会执行的操作。
**扫描即侦察,而非利用。** 该工具仅识别潜在弱点,不会尝试利用它们。
## 功能特性
| 功能 | 描述 |
|---|---|
| **递归网页爬取** | 按可配置深度跟踪同域链接,构建完整的应用程序映射 |
| **WHOIS 侦察** | 获取注册商、创建日期、过期日期、名称服务器及组织详情 |
| **robots.txt 与站点地图解析** | 提取禁止路径与站点地图 URL,常可发现敏感的管理/备份端点 |
| **密钥与凭证检测** | 基于模式检测 AWS 密钥、Google API 密钥、Stripe 密钥、JWT 令牌与 GitHub 令牌 |
| **安全标头审计** | 评估 HSTS、内容安全策略、X-Frame-Options、X-Content-Type-Options 与 CORS 误配置 |
| **XSS 反射检测** | 被动检查参数值是否在响应中回显——这是 XSS 的关键指标 |
| **开放重定向测试** | 将测试 URL 注入易受重定向的参数中,并检测服务器端开放重定向 |
| **HTTP 方法探测** | 对每个端点测试 GET、POST、PUT、DELETE、PATCH、OPTIONS、HEAD 方法 |
| **技术指纹识别** | 识别框架(WordPress、React、Django、Laravel)、服务器(Apache、Nginx)与 CDN |
| **优先级评分引擎** | 分配 0–100 的风险评分,并划分严重等级:CRITICAL / HIGH / MEDIUM / LOW |
| **多格式报告** | 生成可用于渗透测试的 HTML 报告(Jinja2)、JSON 导出与纯文本优先级文件 |
## 🔗 OWASP Top 10 覆盖范围
| OWASP 类别 | 扫描器检测方式 |
|---|---|
| A01 – 失效的访问控制 | 开放重定向测试、HTTP 方法探测 |
| A02 – 加密失败 | 暴露的密钥检测、缺少 HSTS |
| A03 – 注入 | 参数类型分析、回显值检测 |
| A05 – 安全配置错误 | 缺失的安全标头、通配符 CORS |
| A06 – 易受攻击的组件 | 技术指纹识别 |
| A07 – 身份验证失败 | 暴露的凭证与令牌检测 |
## 安装
```
# 克隆仓库
git clone https://github.com/your-username/web-vulnerability-scanner.git
cd web-vulnerability-scanner
# 安装依赖
pip install -r requirements.txt
```
**依赖要求:**
```
requests
beautifulsoup4
python-whois
tqdm
jinja2
```
## 使用方法
```
# 基本扫描
python main.py -u https://target.com
# 使用自定义深度和请求延迟扫描
python main.py -u https://target.com -d 3 --delay 0.5
# 使用自定义输出目录扫描
python main.py -u https://target.com -d 2 --delay 1 -o results/
# 不进行开放重定向测试的扫描
python main.py -u https://target.com --no-redirect-test
```
**参数说明:**
| 参数 | 默认值 | 描述 |
|---|---|---|
| `-u` | 必需 | 目标 URL |
| `-d` | `2` | 爬行深度 |
| `--delay` | `0` | 请求之间的延迟(秒) |
| `-o` | 当前目录 | 报告输出目录 |
| `--no-redirect-test` | — | 跳过开放重定向测试 |
## 示例输出
```
Target : https://testsite.local
Depth : 2
[WHOIS] Registrar: GoDaddy.com, LLC
[WHOIS] Created: 2019-03-15 | Expires: 2026-03-15
[ROBOTS] Found 5 disallowed paths → /admin/ /backup/ /config/
[SITEMAP] Found 23 URLs
Scanning: 100%|████████████████| 15/15 [00:12<00:00]
[FINGERPRINT] Server: Apache/2.4.41 | Tech: PHP, WordPress
[!] Missing HSTS header
[!] Missing Content-Security-Policy
[*** CRITICAL] HIGH VALUE >> /wp-admin/
[SECRET] Found on /config.js >> sk_live_a1b2c3...
[REDIRECT] Open redirect via 'next' -> https://evil.com
Priority Breakdown:
CRITICAL (≥60) : 2
HIGH (40-59): 3
MEDIUM (20-39): 5
LOW (<20) : 5
Reports saved → scan_results/scan_report.html
```
## 项目结构
```
web-vulnerability-scanner/
│
├── main.py # Core scanner — entry point
├── requirements.txt # Python dependencies
│
├── templates/
│ └── report_template.html # Jinja2 HTML report template
│
├── scan_results/ # Default output directory
│ ├── scan_report.html # Visual pentest report
│ ├── scan_results.json # Machine-readable findings
│ └── priority_report.txt # Severity-sorted findings
│
└── README.md
```
## 评分机制说明
每个 URL 会根据以下因素获得综合优先级评分(0–100):
```
+15 per CRITICAL keyword match (admin, config, backup)
+10 per HIGH keyword match
+20 per leaked secret detected
+8 per reflected parameter (XSS indicator)
+5 per dangerous HTTP method accepted (PUT, DELETE)
+2 per missing security header
```
评分上限为 100,并按严重等级划分区间:
| 分数 | 严重等级 |
|---|---|
| ≥ 60 | 🔴 CRITICAL |
| 40–59 | 🟠 HIGH |
| 20–39 | 🟡 MEDIUM |
| < 20 | 🟢 LOW |
## 密钥检测模式
扫描器使用正则表达式检测以下凭证类型:
- Google API 密钥(`AIza...`)
- AWS 访问密钥(`AKIA...`)
- Stripe 密钥(`sk_live_...`)
- JWT 令牌(`eyJ...`)
- GitHub 令牌(`ghp_`、`gho_`、`ghu_`、`ghs_`、`ghr_`)
## 已知限制
| 限制 | 说明 |
|---|---|
| **仅无认证扫描** | 无法扫描需要登录的页面——认证扫描需要会话注入(尚未实现) |
| **仅反射型 XSS** | 存储型 XSS 需要独立的注入-观察流程——不在当前范围 |
| **仅服务端重定向** | 不会检测基于 JavaScript 的客户端重定向 |
| **同域爬取** | 子域名被视为超出范围 |
| **WAF 规避** | 速率限制的 WAF 可能阻断扫描——请使用 `--delay` 缓解 |
## 作者
Gudimella Shivprasad
## 📚 参考资料
- [OWASP Top 10 (2021)](https://owasp.org/www-project-top-ten/)
- [OWASP Web Security Testing Guide](https://owasp.org/www-project-web-security-testing-guide/)
- [MDN HTTP 安全标头](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers#security)
- [PortSwigger: 开放重定向](https://portswigger.net/web-security/open-redirect)
- [RFC 9110: HTTP 语义](https://www.rfc-editor.org/rfc/rfc9110/)
标签:Active, BeEF, CORS, CSP, Django, HSTS, HTTP响应分析, HTTP方法探测, Laravel, Python, React, robots.txt, SEO检索词, sitemap, Splunk, Syscalls, Web漏洞扫描, WHOIS, WordPress, X-Content-Type-Options, X-Frame-Options, XSS反射检测, 优先报告, 凭证泄露, 安全头审计, 安全扫描, 安全标准, 开放重定向, 开源扫描器, 无后门, 时序注入, 爬虫, 结构化查询, 自动化安全, 输入点映射, 逆向工具, 递归爬取