administrator-01001/WebSec-Scanner
GitHub: administrator-01001/WebSec-Scanner
一款具备多扫描模式、22+ 检测插件和多格式报告功能的综合性 Web 漏洞扫描器。
Stars: 1 | Forks: 0
# WebSec Scanner
**Web 漏洞扫描器与安全分析器** — 一款综合性的 Web 安全扫描工具,具备多种扫描模式、特定的 CVE/CWE 检测以及专业的报告生成功能。
## 功能
### 4 种扫描模式
| 模式 | 描述 | 并发 | 速度 |
|------|-------------|-------------|-------|
| **Quick** | 基础信息收集:HTTP headers、SSL/TLS、技术检测 | 1 | ~2-5s |
| **Standard** | OWASP Top 10、XXE、Host Header、NoSQLi、技术 CVEs、配置检查 | 5 | ~5-15s |
| **Deep** | 完整爬取、endpoint fuzzing、API 发现、NVD CVE、GraphQL | 10 | ~30-120s |
| **Enterprise** | 所有模块 + crt.sh 侦察、高并发、详细报告 | 20 | ~60-180s |
### 检测模块(22+ 插件)
**侦察(9 个模块)**
- WHOIS 查询,DNS 枚举(A, MX, NS, TXT, SOA, PTR, CNAME)
- 子域名发现(50+ 常见子域名)
- 端口扫描(25 个常见端口)
- HTTP 安全 Headers 分析
- SSL/TLS 证书检查(过期时间、版本、加密算法)
- 证书透明度(crt.sh 子域名枚举)
- WAF 检测(Cloudflare, CloudFront, Akamai, F5, ModSecurity, Sucuri, ...)
- 技术检测(WordPress, Laravel, Django, React, Vue, Nginx, Apache, ...)
**漏洞(18 个模块)**
- SQL 注入(基于错误、基于布尔、基于时间)
- 跨站脚本攻击(反射型、DOM 型)
- CSRF Token 分析与 SameSite 检查
- 服务端请求伪造(SSRF)
- **XML 外部实体(XXE)注入**
- **Host Header 注入**(缓存投毒、密码重置投毒)
- **GraphQL 安全检查**(内省、schema 泄露)
- **NoSQL 注入**(MongoDB $ne/$regex/$gt payloads)
- 本地/远程文件包含(LFI/RFI)
- 命令注入
- 服务端模板注入(SSTI)
- 开放重定向
- 不安全的直接对象引用(IDOR)
- CORS 配置错误
- 安全 Headers 审计(HSTS, CSP, XFO, XCTO, RP, PP)
- Cookie 安全审计(Secure, HttpOnly, SameSite)
- **特定技术 CVE 扫描器**
- **带有 CWE 映射的配置缺陷检查器**
**CVE 扫描器**
- 已知漏洞数据库(针对 30+ 技术的 137+ 条 CVE 记录)
- NVD API 集成
- Exploit-DB 搜索
- 基于版本的 CVE 匹配
**爬虫引擎**
- 网站爬虫(robots.txt、sitemap.xml、链接提取)
- API 发现(/api, /graphql, /swagger, /admin, ...)
- 隐藏 Endpoint 检测
- HTTP 方法发现(GET, POST, PUT, DELETE, OPTIONS)
### 多格式报告
- **HTML** — 带有严重性摘要卡片和分组发现的深色模式 UI
- **JSON** — 包含完整元数据的机器可读格式
- **CSV** — 便于 Excel 等工具进行过滤和分析的友好格式
### 插件架构
无需修改核心即可添加新模块:
```
@plugin("module_name", "Description", "vuln")
class MyPlugin(VulnPlugin):
async def run(self, target, http_client) -> list[Finding]:
# your logic here
pass
```
### 安全验证
该工具使用**非侵入式**检测技术:
- 基于错误的检测(分析响应模式)
- 基于布尔的检测(比较响应长度)
- 基于时间的检测(测量响应延迟)
- 无自动化数据提取
- 无破坏性 payloads
## 安装说明
### 前置条件
- Python 3.10+
- pip
### 设置
```
# Clone 项目
git clone https://github.com/administrator-01001/WebSec-Scanner.git
cd WebSec-Scanner
# Install 依赖
pip install -r requirements.txt
# (可选)Install whois 用于 WHOIS 查询
# Linux: sudo apt install whois
# macOS: brew install whois
# Windows: 跳过(或使用 WSL)
```
### 项目结构
```
WebSec-Scanner/
├── main.py # CLI entry point (argparse)
├── config.py # Scan mode configuration
├── core/
│ ├── scanner.py # Scanner engine
│ └── plugin_system.py # Plugin registry + auto-discovery
├── models/
│ ├── target.py # ScanTarget dataclass
│ └── result.py # Finding + ScanResult dataclasses
├── modules/
│ ├── recon/ # 9 recon modules
│ │ ├── whois.py, dns_enum.py, subdomain.py, port_scan.py
│ │ ├── http_header.py, ssl_tls.py, waf_detect.py, tech_detect.py
│ │ ├── cert_transparency.py
│ ├── vulnerability/ # 18 vuln modules
│ │ ├── sqli.py, xss.py, csrf.py, ssrf.py, lfi_rfi.py
│ │ ├── command_injection.py, ssti.py, open_redirect.py
│ │ ├── idor.py, cors.py, security_headers.py, cookie_security.py
│ │ ├── tech_vuln_scanner.py, config_checks.py
│ │ ├── xxe.py, host_header_injection.py, graphql_check.py, nosqli.py
│ │ └── known_vulns.py # 137+ CVE entries for 30 techs
│ ├── cve/ # CVE scanner
│ │ ├── nvd.py, exploit_db.py
│ └── crawl/ # Crawl engine
│ ├── crawler.py, api_discovery.py
├── dashboard/cli.py # CLI real-time dashboard
├── report/ # Report generators
│ ├── html_report.py, json_report.py, csv_report.py
├── utils/ # Utilities
│ ├── http_client.py, helpers.py
├── samples/
│ └── vulnerable_app.py # Test Flask app
├── requirements.txt
├── setup.py
└── pyproject.toml
```
## 使用方法
### 快速开始
```
cd C:\Users\HANH
$env:PYTHONPATH = "C:\Users\HANH"
# 快速扫描
python -m WebSec-Scanner example.com -m quick
# 带所有报告的标准扫描
python -m WebSec-Scanner https://example.com -m standard -r all
# 深度扫描
python -m WebSec-Scanner https://example.com -m deep --crawl-depth 3
# 带 proxy 的企业级扫描
python -m WebSec-Scanner https://example.com -m enterprise -c 30 --proxy http://127.0.0.1:8080
```
### CLI 选项
```
positional arguments:
target Target URL or domain to scan
options:
-h, --help Show help message
-m, --mode {quick,standard,deep,enterprise}
Scan mode (default: quick)
-c, --concurrency CONCURRENCY
Max concurrent requests (0 = mode default)
-p, --proxy PROXY Proxy server (e.g., http://127.0.0.1:8080)
-r, --report {html,json,csv,all}
Report format (default: html)
--crawl-depth CRAWL_DEPTH
Crawl depth (default: 2)
--max-pages MAX_PAGES
Max pages to crawl (default: 50)
--rate-limit RATE_LIMIT
Max requests per second (default: unlimited)
-H, --header HEADER Custom HTTP header (repeatable, e.g. -H 'Authorization: Bearer x' -H 'Cookie: session=abc')
--no-banner Skip banner display
--list-plugins List all available plugins
```
### 示例
```
# 快速信息扫描
python -m WebSec-Scanner example.com -m quick
# 包含所有报告格式的完整扫描
python -m WebSec-Scanner https://example.com -m standard -r all
# 带 crawl 的深度扫描
python -m WebSec-Scanner https://example.com -m deep --crawl-depth 3 --max-pages 100
# 企业级扫描,仅输出 JSON
python -m WebSec-Scanner https://example.com -m enterprise -c 50 -r json
# 列出所有可用 modules
python -m WebSec-Scanner --list-plugins
```
### 测试含有漏洞的应用
```
# Terminal 1:启动 vulnerable 测试应用
cd C:\Users\HANH
$env:PYTHONPATH = "C:\Users\HANH"
python -m webscanner.samples.vulnerable_app
# Terminal 2:扫描它
python -m WebSec-Scanner http://127.0.0.1:5000 -m standard -r all
```
## 支持的技术(CVE 数据库)
| 技术 | 条目 | 技术 | 条目 |
|------------|---------|------------|---------|
| WordPress | 10 | Django | 5 |
| Laravel | 10 | Flask | 4 |
| Python | 10 | Express | 4 |
| PHP | 9 | Spring | 4 |
| Nginx | 8 | Symfony | 3 |
| Apache | 7 | ASP.NET | 3 |
| MySQL | 4 | jQuery | 6 |
| PostgreSQL | 4 | **Tomcat** | **4** |
| Redis | 4 | **Jenkins** | **4** |
| Drupal | 4 | **Kubernetes** | **4** |
| Magento | 3 | **Docker** | **4** |
| **MongoDB** | **4** | **Grafana** | **3** |
| **GitLab** | **3** | **Next.js** | **3** |
| **RabbitMQ** | **2** | **Elasticsearch** | **2** |
| **Vue** | **2** | **React** | **1** |
## 依赖要求
- `httpx` — 异步 HTTP 客户端
- `flask` — 用于构建含有漏洞的应用
- Python 3.10+ 标准库(`asyncio`, `ssl`, `socket`, `re`, `json`, `csv`)
## 许可证
MIT License
WebSec Scanner — 在黑客之前发现漏洞
标签:CISA项目, GitHub, Web安全, 动态插桩, 实时处理, 密码管理, 蓝队分析, 计算机取证, 运行时操纵, 逆向工具