vamanparmar/websentinel
GitHub: vamanparmar/websentinel
一款基于 Python 的单文件 Web 漏洞扫描器,提供 23 个模块用于自动化发现与报告常见安全缺陷。
Stars: 1 | Forks: 0
# 🛡 WebSentinel — 高级 Web 漏洞扫描器
[](https://www.python.org/)
[]()
[](LICENSE)
[]()
[]()
[]()
一款面向漏洞赏金猎人与渗透测试人员的专业级 Python Web 漏洞扫描器。
单文件。仅一个依赖(`requests`)。23 个扫描模块。4 种报告格式。
## v3.0 新功能
| 功能 | 描述 |
|---------|-------------|
| **POST 表单注入** | XSS、SQLi、CMDi、遍历现在也在 POST 表单中测试 |
| **WAF 检测与绕过** | 自动识别 10 种 WAF 并切换至绕过载荷 |
| **子域名接管** | 检查 CNAME 目标(GitHub Pages、Heroku、S3、Azure、Netlify 等) |
| **GraphQL 枚举** | 发现 GraphQL 端点并导出完整模式 |
| **HTTP 请求走私** | 基于时间的 CL.TE 与 TE.CL 检测 |
| **原型污染** | 测试 GET 参数与 JSON POST 体 |
| **2FA/OTP 绕过** | 空 OTP 测试 + 速率限制检查 |
| **WebSocket 检测** | 在页面源码与脚本中查找 WS 端点 |
| **进度条** | 慢速模块的视觉进度展示 |
| **基线指纹识别** | 通过与正常响应对比降低误报 |
| **代理支持** | 通过 `--proxy` 路由至 Burp Suite |
| **严重等级过滤** | 仅显示 HIGH+ 结果(`--severity HIGH`) |
| **作用域过滤** | 限制爬虫路径(`--scope /api`) |
## 23 个扫描模块
| # | 模块 | 功能 |
|---|--------|-------------|
| 00 | WAF 检测 | 识别 Cloudflare、AWS WAF、Akamai、ModSecurity、Imperva 等 5+ 种 |
| 01 | 爬虫 | 查找所有 GET 参数与 POST 表单(深度 2) |
| 02 | 侦察 | 服务器头、技术栈、HTML 注释、邮箱、robots.txt |
| 03 | 子域名枚举 + 接管 | 60+ 子域名、通配符 DNS、CNAME 接管检测 |
| 04 | 端口扫描 | 28 个端口 — 数据库、Docker、Jupyter、Elasticsearch |
| 05 | TLS / SSL | 协议、密钥强度、证书有效期、SAN 校验 |
| 06 | 安全头 | HSTS、CSP、X-Frame-Options、Referrer-Policy、Permissions-Policy |
| 07 | Cookie + JWT | 标记、熵值、alg=none、kid 注入、缺失 exp |
| 08 | CORS | 5 种来源绕过模式、凭证反射 |
| 09 | XSS(GET + POST) | 14 种载荷 + 所有参数与表单的 WAF 绕过变体 |
| 10 | SQL 注入(GET + POST) | 报错型、布尔盲、时间型(MySQL/MSSQL/PG/SQLite) |
| 11 | 命令注入(GET + POST) | 基于输出与时间的检测,Linux 与 Windows |
| 12 | 路径遍历(GET + POST) | 9 种编码变体、跨平台 |
| 13 | SSRF | AWS/GCP/Azure/DO 元数据、localhost、file:// |
| 14 | 开放重定向 | 8 种绕过变体 |
| 15 | GraphQL | 端点发现、枚举、模式导出 |
| 16 | HTTP 请求走私 | CL.TE 与 TE.CL 基于时间的检测 |
| 17 | 原型污染 | 查询字符串与 JSON 体注入 |
| 18 | 2FA/OTP 绕过 | 空 OTP + 速率限制检查 |
| 19 | WebSocket 检测 | 查找 WS 端点并标记以供手动测试 |
| 20 | 敏感文件 | 55+ 路径:.env、.git、SSH 密钥、日志、管理面板 |
| 21 | API 模糊测试 | 30+ 端点、无认证访问 |
| 22 | 速率限制 | 30 次请求的爆发测试 |
## 安装
```
git clone https://github.com/vamanparmar/websentinel.git
cd websentinel
pip install requests
```
需要 Python 3.8+。无其他依赖。
## 使用
### 基本扫描
```
python vuln_scanner.py https://target.com
```
### 认证扫描
```
python vuln_scanner.py https://target.com --cookie "session=abc123; csrf=xyz"
```
### 使用 Bearer 令牌
```
python vuln_scanner.py https://target.com --token "eyJhbGciOiJIUzI1NiJ9..."
```
### 通过 Burp Suite 路由
```
python vuln_scanner.py https://target.com --proxy http://127.0.0.1:8080
```
### 保存所有报告格式
```
python vuln_scanner.py https://target.com -o report
# 创建: report.json report.html report.md
```
### 仅显示 HIGH 与 CRITICAL 结果
```
python vuln_scanner.py https://target.com --severity HIGH
```
### 限制仅 API 作用域
```
python vuln_scanner.py https://target.com --scope /api
```
### 跳过慢速模块
```
python vuln_scanner.py https://target.com --skip ports,subdomains,smuggling
```
### 完整示例
```
python vuln_scanner.py https://target.com \
--cookie "session=abc123" \
--proxy http://127.0.0.1:8080 \
--severity MEDIUM \
--scope /api \
--timeout 15 \
--threads 20 \
--output report
```
## 全部选项
| 标志 | 默认值 | 描述 |
|------|---------|-------------|
| `target` | *必需* | 目标 URL(`https://example.com`) |
| `-o, --output` | — | 保存 `BASENAME.json/.html/.md` |
| `--cookie` | — | Cookie 头 |
| `--token` | — | Bearer 令牌 |
| `--header` | — | 自定义头 `Key:Value`(可重复) |
| `--proxy` | — | HTTP 代理(例如 `http://127.0.0.1:8080`) |
| `--user-agent` | WebSentinel UA | 自定义 User-Agent |
| `--timeout` | 10 | 请求超时(秒) |
| `--threads` | 10 | 线程池大小 |
| `--max-urls` | 30 | 最大爬取 URL 数量 |
| `--max-tests` | 300 | 每个模块最大注入请求数 |
| `--severity` | INFO | 最低严重等级:INFO/LOW/MEDIUM/HIGH/CRITICAL |
| `--scope` | — | 限制爬虫到路径前缀 |
| `--skip` | — | 逗号分隔的要跳过的模块名 |
### 跳过模块名
```
waf, crawl, recon, subdomains, ports, tls, headers, cookies,
cors, xss, sqli, cmdi, traversal, ssrf, redirect, graphql,
smuggling, prototype, 2fa, websocket, files, api, ratelimit
```
## 严重等级指南
| 等级 | CVSS | 示例 |
|----------|------|---------|
| 🔴 CRITICAL | 9.0–10.0 | RCE、SQLi、SSRF 到元数据、SSH 键、子域名接管 |
| 🟠 HIGH | 7.0–8.9 | XSS、路径遍历、JWT 绕过、开放 Redis/MongoDB |
| 🟡 MEDIUM | 4.0–6.9 | 缺少 CSP、无速率限制、2FA 绕过 |
| 🔵 LOW | 1.0–3.9 | 信息泄露、缺少头 |
| ⚪ INFO | 0.0 | 技术栈、WebSocket 端点、GraphQL 发现 |
## 报告输出
| 格式 | 适用场景 |
|--------|---------|
| **控制台** | 实时彩色输出 |
| **JSON** | 工具集成、自动化流水线 |
| **HTML** | 暗色主题视觉报告(客户/团队) |
| **Markdown** | 漏洞赏金撰写、GitHub 提交 |
每个发现均包含:CWE ID、CVSS 评分、证据片段与修复建议。
## 测试
项目包含完整测试套件 — **92 个测试,零外部依赖**(除 `requests`)。
### 运行测试
```
python vuln_scanner.py https://target.com
```
### 测试覆盖 — 18 个测试类
| 测试类 | 覆盖内容 |
|------------|---------------|
| `TestFinding` | 数据类字段、默认值、`to_dict()` |
| `TestScanResult` | `add()`、`summary()` 计数、WAF 字段 |
| `TestURLHelpers` | `_same_host`、`_in_scope`、`_inject_get` |
| `TestFalsePositive` | 所有 5 种基线比较场景 |
| `TestSeverityFilter` | 过滤逻辑、URL 回退、累积 |
| `TestJWTAnalysis` | `alg=none`、HS256、缺失 `exp`、过期、`kid` 注入、权限声明 |
| `TestWAFDetection` | 检测到 Cloudflare、清空头、探测阻断 → 绕过模式 |
| `TestSecurityHeaders` | 缺少 HSTS/CSP、`unsafe-inline`、全部头存在 |
| `TestRecon` | 服务器头、X-Powered-By、HTML 注释、邮箱、技术栈 |
| `TestXSSDetection` | GET/POST 反射、无误报、max_tests 限制 |
| `TestSQLiDetection` | 报错型、布尔盲、清空 = 无发现 |
| `TestTLSCheck` | HTTP → HIGH 发现、HTTPS = 无警告 |
| `TestPayloadGenerators` | 非空、结构、WAF 绕过顺序 |
| `TestCORSCheck` | 凭据存在时为 CRITICAL、无凭据为 HIGH、清空来源 |
| `TestSensitiveFiles` | `.env` 为 CRITICAL、`.git` 为 HIGH、404 无发现、403 为 LOW |
| `TestCrawler` | GET 参数、POST 表单、外部链接忽略、作用域限制 |
| `TestCLIParser` | 所有标志、必需目标、无效严重等级退出 |
| `TestReportGeneration` | JSON/HTML/Markdown 输出、摘要计数、XSS 回归 |
## 法律声明
本工具适用于:
- ✅ 自己的系统
- ✅ 漏洞赏金计划(在范围内的目标)
- ✅ 授权渗透测试
- ✅ CTF 挑战
- ❌ 未经明确书面许可的任何系统
## 许可证
MIT — 参见 [LICENSE](LICENSE)
标签:2FA绕过, BeEF, Bug Bounty, Burp Suite集成, C2日志可视化, CORS, GraphQL, HTTP请求走私, JSON注入, JWT, POST表单注入, Python, SSRF, WebSocket, Web安全, XSS, 代理支持, 代码生成, 依赖分析, 依赖少, 单文件工具, 原型污染, 可自定义解析器, 告警, 命令注入, 子域名接管, 安全测试, 开源安全工具, 指纹识别, 攻击性安全, 无后门, 渗透测试工具, 漏洞情报, 爬虫, 蓝队分析, 路径遍历, 逆向工具, 逆向工程平台, 速率限制检测