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安全, 动态插桩, 实时处理, 密码管理, 蓝队分析, 计算机取证, 运行时操纵, 逆向工具