funsoi-hub/dast-scanner

GitHub: funsoi-hub/dast-scanner

基于 OWASP ZAP 的容器化 Web 应用动态安全扫描工具,自动化完成漏洞检测并生成符合 NIST 标准的专业 VAPT 报告。

Stars: 0 | Forks: 0

# DAST Scanner - Web 应用程序漏洞评估工具 [![Python](https://img.shields.io/badge/Python-3.11-blue.svg)](https://www.python.org/) [![Docker](https://img.shields.io/badge/Docker-20.10+-blue.svg)](https://www.docker.com/) [![OWASP ZAP](https://img.shields.io/badge/OWASP%20ZAP-2.17.0-red.svg)](https://www.zaproxy.org/) [![License](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE) 基于 OWASP ZAP 构建的动态应用程序安全测试(DAST)工具。通过专业的 VAPT 报告实现 Web 应用程序漏洞扫描的自动化。 ## 功能 - 自动化漏洞扫描 - SQLi、XSS、CSRF、安全头等 - 专业 VAPT 报告 - 包含执行摘要的 HTML 和 JSON 输出 - 漏洞去重 - 对不同 URL 中的相同发现进行分组 - Docker 容器化 - 跨任何平台的一致执行 - 持久化 ZAP 容器 - 更快的重复扫描 - CVSS v3.1 评分 - 行业标准的严重性评级 - 可点击的目录 - 轻松导航报告 - 扩展超时处理 - 无不活动超时,扫描运行至完成 ## 架构 ``` ┌─────────────────────────────────────────────────────────────┐ │ DOCKER ENVIRONMENT │ ├─────────────────────────────────────────────────────────────┤ │ ┌─────────────────┐ ┌─────────────────┐ │ │ │ ZAP Container │ │ Scanner Container│ │ │ │ (Persistent) │◄────│ (Ephemeral) │ │ │ │ Port: 8081 │ │ Runs per scan │ │ │ └─────────────────┘ └─────────────────┘ │ │ │ │ │ │ ▼ ▼ │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ SHARED VOLUME: /reports/ │ │ │ └─────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────┘ ``` ## 快速开始 ### 前置条件 - Docker Desktop 20.10+ 或 Docker Engine - 建议 8GB RAM - Git ### 安装 克隆仓库并导航到项目文件夹: git clone https://github.com/YOUR_USERNAME/dast-scanner-public.git cd dast-scanner-public ### 用法 使用 Windows 批处理文件运行扫描: docker-scan.bat 在提示时输入目标 URL。根据应用程序大小,扫描大约运行 45-90 分钟。 或者,直接使用 Docker Compose: docker compose up -d zap docker compose build scanner docker compose run --rm scanner --url https://example.com --active-timeout 7200 ### 命令行参数 | 参数 | 描述 | 默认值 | |----------|-------------|---------| | --url | 要扫描的目标 URL | 必填 | | --active-timeout | 最大扫描持续时间(秒) | 7200(2 小时) | | --scan-id | 自定义扫描标识符 | 自动生成 | | --zap-host | ZAP API 主机 | localhost | | --zap-port | ZAP API 端口 | 8080 | ## Windows 批处理文件 | 文件 | 用途 | |------|---------| | docker-scan.bat | 主启动器 - 启动 ZAP 并运行扫描 | | docker-rebuild.bat | 在代码更改后重建扫描器镜像 | | docker-stop.bat | 停止所有容器 | | docker-status.bat | 检查容器和报告状态 | | cleanup.bat | 删除所有报告并重置容器 | ## 报告输出 报告在 reports 目录中生成,命名格式为 DSCAN-XXX_YYYYMMDD_HHMMSS.html 及对应的 JSON 文件。 ### 报告部分 - 机密性声明与免责声明 - 基于 NIST SP 800-115 和 OWASP 的评估概述 - 使用 CVSS v3.1 评分的发现严重性评级 - 涵盖可能性和影响的风险说明 - 带有直观严重性卡片的执行摘要 - 按漏洞类别划分的测试摘要 - 测试人员备注和建议 - 漏洞摘要表 - 包含证据和修复步骤的详细发现 ## 扫描阶段与时间 | 阶段 | 进度 | 活动 | 典型持续时间 | |-------|----------|----------|------------------| | Spider 发现 | 0-36% | URL 枚举与被动分析 | 5-10 分钟 | | 主动攻击 | 36-37% | SQLi、XSS、CSRF 探测 | 20-40 分钟 | | 完成 | 37-100% | 剩余检查和告警处理 | 10-20 分钟 | ## 项目结构 ``` dast-scanner-public/ ├── dast_scanner.py # Main scanner application ├── docker-compose.yml # Docker services configuration ├── Dockerfile # Scanner container build ├── requirements.txt # Python dependencies ├── docker-scan.bat # Windows launcher script ├── docker-rebuild.bat # Rebuild scanner image ├── docker-stop.bat # Stop containers ├── docker-status.bat # Check status ├── cleanup.bat # Reset all data ├── .gitignore # Git ignore rules ├── LICENSE # MIT License └── README.md # This file ``` ## 故障排除 | 问题 | 解决方案 | |-------|----------| | ZAP 容器启动失败 | 在 Docker Desktop 设置中将 Docker 内存增加到至少 4GB | | 扫描停滞在 36-37% 并显示 "continuing" 消息 | 这是正常的。请等待 20-40 分钟,让主动攻击阶段完成 | | 未发现 URL | 目标可能是单页应用程序或没有可爬取的链接。请验证目标可访问性 | | 端口 8081 已被占用 | 更改 docker-compose.yml 中的端口映射或停止冲突进程 | | 容器名称冲突 | 运行 cleanup.bat 重置所有容器和网络 | | 内存不足错误 | 将 Docker Desktop 的内存分配增加到 8GB 或更高 | | "ZAP is taking longer than expected" | 首次运行时会下载插件。请等待最多 2 分钟 | ## 维护命令 检查容器和报告状态: docker-status.bat 更新代码后重建扫描器: docker-rebuild.bat 不使用时停止所有容器: docker-stop.bat 重置所有内容并删除所有报告: cleanup.bat ## 贡献 欢迎贡献。请遵循以下步骤: 1. Fork 该仓库 2. 使用 git checkout -b feature/amazing-feature 创建一个功能分支 3. 使用 git commit -m 'Add amazing feature' 提交您的更改 4. 使用 git push origin feature/amazing-feature 推送到该分支 5. 在 GitHub 上打开一个 Pull Request ## 免责声明 此工具对 Web 应用程序执行主动安全扫描。仅对您拥有或获得明确书面许可进行测试的应用程序使用。未经授权的扫描可能违反法律和服务条款。作者对未经授权或不当使用本软件不承担任何责任。 ## 许可证 本项目基于 MIT 许可证授权。有关完整详细信息,请参阅 LICENSE 文件。 MIT 许可证摘要:特此免费授予任何获得本软件副本的人使用、复制、修改、合并、发布、分发、再许可和销售本软件副本的权利,前提是所有副本中均包含版权声明和许可声明。 ## 致谢 - OWASP ZAP 提供了世界上最受欢迎的免费 Web 安全测试平台 - 开源安全社区提供的方法论和最佳实践 - 灵感来源于专业渗透测试框架,包括 NIST SP 800-115 和 OWASP Testing Guide
标签:AES-256, CISA项目, CSRF, CVSS v3.1评分, DAST, DNS枚举, Docker容器化, Docker部署, MIT开源协议, OWASP ZAP, Python, VAPT, Web安全, Web应用安全评估, Web漏洞扫描, XSS, ZAP代理, 动态应用安全测试, 安全基线检查, 安全报告生成, 恶意软件分析, 无后门, 漏洞去重, 漏洞情报, 漏洞评估, 版权保护, 网络安全工具, 蓝队分析, 请求拦截, 跨站脚本攻击, 黑盒测试