sujo030902/owasp-top10-scanner

GitHub: sujo030902/owasp-top10-scanner

一个基于 Python 的 OWASP Top 10 (2025) 自动化 Web 应用漏洞扫描器,覆盖十大安全类别并生成 HTML 和 JSON 格式的检测报告。

Stars: 0 | Forks: 0

# owasp-top10-scanner 使用 **Python** 编写的自动化 **OWASP Top 10 (2025)** Web 应用程序漏洞扫描工具。 它会爬取目标,针对每个 OWASP 类别执行检查,并生成 HTML + JSON 报告。 ## 功能 | OWASP ID | 类别 | 检查项 | |----------|----------|--------| | A01 | 访问控制失效 | `.git`、`.env`、备份文件、管理路径、敏感资源 | | A02 | 安全配置错误 | 缺失的安全 header、目录列出、技术栈信息泄露 | | A03 | 软件供应链失效 | 暴露的依赖清单 / SBOM、registry 凭证、已知漏洞的 jQuery/Bootstrap/AngularJS | | A04 | 加密失败 | 明文 HTTP、缺失 HSTS、明文表单提交 | | A05 | 注入 | 反射型 XSS、基于错误的 SQLi、SSTI | | A06 | 不安全设计 | 可预测的对象 ID、硬编码默认值、客户端认证 | | A07 | 身份验证失效 | cookie 标志(Secure/HttpOnly/SameSite)、登录表单检测 | | A08 | 软件或数据完整性失效 | 没有 SRI 的第三方脚本、不安全的 JSONP | | A09 | 安全日志与告警失效 | 暴露的日志/遥测 endpoint、非标准的 404 | | A10 | 异常情况处理不当 | 冗长的错误信息、未捕获的异常、缺失的自定义错误页面、暴露的调试 endpoint | 基于 [OWASP Top 10:2025](https://owasp.org/Top10/2025/) 发布版本映射。 这取代了 2021 版的映射:SSRF(2021 A10)已被移除,**A10 异常情况处理不当** 是新增类别,安全配置错误从 A05 移至 A02,且易受攻击和过时的组件扩展为 **软件供应链失效**(A03)。 ## 安装 ``` cd owasp-top10-scanner python -m venv .venv && source .venv/bin/activate pip install -e . ``` 或者包含开发/测试依赖: ``` pip install -e ".[dev]" ``` ## 使用方法 ``` owasp-top10 https://example.com -o report ``` 选项: ``` -o, --output report base name (writes .html and .json) -p, --max-pages max URLs to crawl (default 50) -d, --max-depth crawl depth (default 3) -t, --timeout request timeout (seconds) (default 10) --proxy proxy URL, e.g. http://127.0.0.1:8080 --header extra request header (repeatable) -k, --insecure skip TLS verification --checks run only selected ids, e.g. A01,A03 --list-checks list available checks --json-only skip the HTML report ``` 示例: ``` # 通过 Burp Suite 进行全面扫描 owasp-top10 https://example.com --proxy http://127.0.0.1:8080 -k # 仅 injection + access control,机器可读输出 owasp-top10 https://example.com --checks A01,A03 --json-only -o findings ``` ## 测试 ``` pip install -e ".[dev]" pytest -v ``` 测试套件会启动一个本地的故意包含漏洞的 HTTP 服务器 (`tests/conftest.py`),并断言每个检查项都能被触发。 ## 项目布局 ``` owasp_top10/ core/ # HttpClient, Crawler, Scanner, Finding checks/ # one module per OWASP category report/ # HTML + JSON report writers cli.py # entry point tests/ # pytest suite with a local vulnerable target ``` ## 扩展 每个检查项都继承自 `BaseCheck`,通过 `OWASP_IDS` 声明其覆盖的 OWASP 2025 ID, 并实现 `run(urls) -> list[Finding]`。将其注册到 `owasp_top10/checks/__init__.py` 中,它就会被自动识别并加载。 ## 2021 → 2025 映射 | 2025 | 类别 | 原类别 (2021) | |------|----------|---------------| | A01 | 访问控制失效 | A01(不变) | | A02 | 安全配置错误 | A05 | | A03 | 软件供应链失效 | A06(范围扩大) | | A04 | 加密失败 | A02 | | A05 | 注入 | A03 | | A06 | 不安全设计 | A04 | | A07 | 身份验证失效 | A07(不变) | | A08 | 软件或数据完整性失效 | A08(重命名) | | A09 | 安全日志与告警失效 | A09(重命名) | | A10 | 异常情况处理不当 | **新增** — 取代了 SSRF | ## License MIT
标签:CISA项目, OWASP Top 10, Python, Web安全, 加密, 安全规则引擎, 密码管理, 文档结构分析, 无后门, 漏洞扫描器, 蓝队分析, 逆向工具