Moscvv/websentinel

GitHub: Moscvv/websentinel

一款基于 OWASP Top 10 标准的 Python 命令行 Web 应用漏洞扫描器,支持自动化检测安全标头、注入、CORS 等常见 Web 安全问题并输出分级报告。

Stars: 0 | Forks: 0

# 🛡️ WebSentinel — OWASP Top 10 漏洞扫描器 ## 扫描范围 | # | 检查项 | OWASP 参考 | 严重性范围 | |---|-------|----------------|----------------| | 1 | **安全标头** | A05 – 安全配置错误 | LOW → HIGH | | 2 | **开放重定向** | A01 – 访问控制失效 | HIGH | | 3 | **SQL 注入指标** | A03 – 注入 | CRITICAL | | 4 | **暴露的管理面板和路径** | A05 – 安全配置错误 | MEDIUM → HIGH | | 5 | **敏感文件泄露** (.env, backups, .git) | A05 – 安全配置错误 | MEDIUM → CRITICAL | | 6 | **Cookie 安全标志** | A02 – 加密机制失效 | MEDIUM | | 7 | **CORS 配置错误** | A05 – 安全配置错误 | HIGH → CRITICAL | | 8 | **反射型 XSS 指标** | A03 – 注入 | HIGH | | 9 | **危险的 HTTP 方法** (PUT, DELETE, TRACE) | A05 – 安全配置错误 | MEDIUM | ## 快速开始 ``` # 克隆并安装 git clone https://github.com/yourusername/websentinel.git cd websentinel pip install -r requirements.txt # 启动一个易受攻击的测试目标(需要 Docker) docker run --rm -d -p 3000:3000 bkimminich/juice-shop # OWASP Juice Shop # 或者 docker run --rm -d -p 80:80 vulnerables/web-dvwa # DVWA # 运行 scanner python scanner.py http://localhost:3000 # 保存 JSON 报告 python scanner.py http://localhost:3000 --output report.json ``` ## 示例输出 ``` ██╗ ██╗███████╗██████╗ ███████╗███████╗███╗ ██╗████████╗██╗███╗ ██╗███████╗██╗ ... Target : http://localhost:3000 Started : 2025-05-03 14:22:11 ──────────────────────────────────────────────────── ▶ Running: Security Headers… [4 issue(s)] (0.3s) ▶ Running: Open Redirect… [1 issue(s)] (0.8s) ▶ Running: SQL Injection Indicators… [clean] (1.2s) ▶ Running: Exposed Admin / Paths… [3 issue(s)] (2.1s) ... ════════════════════════════════════════════════════ SCAN COMPLETE — 11 finding(s) ════════════════════════════════════════════════════ [1] Open Redirect Detected Severity : HIGH OWASP : A01:2021 – Broken Access Control Detail : Parameter 'url' redirects to arbitrary external URLs... Evidence : GET http://localhost:3000?url=https://evil.example.com : → 302 Location: https://evil.example.com Fix : Validate and whitelist redirect targets. Severity Breakdown: HIGH ███████ (7) MEDIUM ████ (4) ``` ## 在故意存在漏洞的应用上进行测试 ### OWASP Juice Shop (推荐) ``` docker run --rm -d -p 3000:3000 bkimminich/juice-shop python scanner.py http://localhost:3000 -o juice_shop_report.json ``` Juice Shop 是一个现代的 Node.js 应用,包含故意的 OWASP Top 10 漏洞 — 非常适合用于验证扫描器的准确性。 ### DVWA (Damn Vulnerable Web App) ``` docker run --rm -d -p 80:80 -p 3306:3306 vulnerables/web-dvwa # 默认凭证:admin / password python scanner.py http://localhost/dvwa -o dvwa_report.json ``` ### 各应用的预期发现 | 发现类型 | Juice Shop | DVWA | |---|---|---| | 缺失安全标头 | ✅ | ✅ | | 开放重定向 | ✅ | ❌ | | SQLi 指标 | ❌ (使用 ORM) | ✅ | | 暴露的路径 | ✅ (/api-docs) | ✅ (/phpmyadmin) | | 敏感文件 | ✅ | ✅ | | 弱 Cookie | ✅ | ✅ | | CORS 问题 | ✅ | ❌ | ## 架构 ``` scanner.py ├── HTTP helper layer (requests session, timeout/SSL handling) ├── Check modules (×9) (each returns list of Finding dicts) ├── Orchestrator (runs all checks, collects results) ├── Reporter (coloured terminal + JSON export) └── CLI (argparse, --output, --verbose) ``` 每个检查模块都是独立的,并返回一个 `finding` 字典列表 — 易于扩展、独立测试或插入到 CI pipeline 中。 ## 扩展扫描器 添加新检查只需三个步骤: ``` # 1. 编写一个 check 函数 def check_my_new_vuln(base_url): findings = [] r = get(base_url + "/some/path") if r and "dangerous_pattern" in r.text: findings.append(finding( title="My New Vulnerability", severity="HIGH", description="Explanation of the issue.", evidence=f"GET {base_url}/some/path → match found", remediation="How to fix it.", owasp_ref="A05:2021 – Security Misconfiguration", )) return findings # 2. 将其注册到 CHECKS 列表中 CHECKS = [ ... ("My New Check", check_my_new_vuln), ] # 3. 针对 DVWA 或 Juice Shop 运行并验证 ``` ## 路线图 - [ ] 速率限制/节流控制 (`--delay` 标志) - [ ] 认证扫描 (session cookie / Bearer token 注入) - [ ] HTML 报告输出 (Jinja2 模板) - [ ] 子域名枚举预扫描 - [ ] CI/CD 集成示例 (GitHub Actions) - [ ] 使用多线程加快路径枚举速度 ## ⚠️ 法律免责声明 本工具仅供**授权的安全测试**使用。仅在你的系统上运行,或者在获得明确书面测试许可的系统上运行。未经授权的扫描可能违反计算机犯罪法,包括日本的《禁止非法访问计算机法》(不正アクセス行為の禁止等に関する法律)。 ## 展示的技能 - **Python** — 具有清晰架构的模块化 CLI 工具 - **Web 安全** — 实践应用 OWASP Top 10 (2021) 概念 - **HTTP 内部机制** — 标头、重定向、CORS、cookie、方法 - **安全工具开发** — 类似于 Nikto、Nuclei、Burp Suite 主动扫描的模式 - **负责任的披露意识** — 严重性评级、修复指导 *为入门级进攻性安全 / Web 应用渗透测试岗位构建的作品集项目。*
标签:CISA项目, Homebrew安装, Python, Web安全, 内存取证对抗, 数据泄露, 无后门, 蓝队分析, 请求拦截, 逆向工具