pallab-js/vulnScan

GitHub: pallab-js/vulnScan

一个基于Python的命令行Web漏洞扫描器,集成了多种DAST检测能力和灵活的报告输出,帮助安全人员快速发现Web应用中的安全风险。

Stars: 1 | Forks: 0

# WebScanner 一个全面、专业级的基于 CLI 的 Web 安全漏洞扫描器,结合了多种 DAST 扫描能力。灵感来源于 Nikto 和 Nuclei 等工具。 ## 功能 ### 漏洞检测 - **SQL 注入** - 基于报错、盲注、基于表单的检测 - **XSS** - 反射型、存储型、DOM 型 - **LFI/RFI** - 路径遍历、包装器协议 - **SSRF** - 内部服务、云元数据 - **CSRF** - Token 缺失、SameSite Cookie - **命令注入** - Shell 命令注入 - **XXE** - XML 外部实体注入 - **不安全的反序列化** - Java 反序列化 - **身份验证问题** - 弱身份验证、权限提升 ### CVE 扫描 - Log4j (CVE-2021-44228) - Heartbleed (CVE-2014-0160) - SSL/TLS 配置问题 - HTTP TRACE 注入 ### 安全检查 - 安全头分析 - 服务器指纹识别与版本检测 - 敏感文件枚举 - HTTP 方法分析 - Cookie 安全属性 - SSL/TLS 配置 ### 扫描能力 - Web 爬虫,用于全面扫描 - 并行多线程扫描 - 速率限制与隐蔽模式 - 代理支持 - 自定义 Header 注入 - 会话处理与身份验证 ### 输出与报告 - 控制台(彩色,人类可读) - JSON(结构化数据) - XML(标准格式) - CSV(电子表格分析) - **HTML**(支持过滤的交互式报告) - **SARIF**(CI/CD 集成) ## 安装 ``` git clone https://github.com/yourusername/webscanner.git cd vulnScan pip install -r requirements.txt ``` ## 快速开始 ``` # 基本扫描 python -m webscanner http://example.com # 使用特定检查进行扫描 python -m webscanner http://example.com --checks sqli_checks,xss_checks # 具有交互式过滤的 HTML 报告 python -m webscanner http://example.com -o html -f report.html # 启用 Web crawling python -m webscanner http://example.com --crawl --crawl-depth 3 # 隐身模式 (降低请求率) python -m webscanner http://example.com --stealth ``` ## 可用检查 | 检查项 | 描述 | |-------|-------------| | `header_checks` | 安全头分析 | | `server_info_checks` | 服务器指纹识别 | | `file_checks` | 敏感文件枚举 | | `misc_checks` | HTTP 方法,Cookie | | `sqli_checks` | SQL 注入 | | `xss_checks` | 跨站脚本攻击 (XSS) | | `lfi_checks` | 本地/远程文件包含 | | `ssrf_checks` | 服务端请求伪造 (SSRF) | | `csrf_checks` | CSRF 防护 | | `auth_checks` | 身份验证问题 | | `cmd_injection` | 命令注入 | | `xxe_checks` | XXE 漏洞 | | `deserialization_checks` | 不安全的反序列化 | | `log4j` | Log4j (CVE-2021-44228) | | `ssl_config` | SSL/TLS 配置 | | `trace_injection` | HTTP TRACE 注入 | ## CLI 选项 ``` positional arguments: url Target URL to scan output options: -o, --output FORMAT Output format (console/json/xml/csv/html/sarif) -f, --output-file FILE Output file path scan options: -c, --checks CHECKS Comma-separated checks (default: all) -t, --threads N Number of threads (default: 10) --timeout SECONDS Request timeout (default: 30) --delay SECONDS Delay between requests --max-retries N Retry failed requests --requests-per-second N Rate limit (0=unlimited) http options: --user-agent STRING Custom User-Agent --proxy URL Proxy URL --no-ssl-verify Skip SSL verification --header "Key: Value" Custom HTTP header crawling options: --crawl Enable web crawling --crawl-depth N Max crawl depth (default: 2) --crawl-max-pages N Max pages to crawl (default: 100) template options: --templates PATH Custom templates directory --template-id ID Run specific template authentication: --auth-login-url URL Login URL --auth-username USER Username --auth-password PASS Password --auth-bearer TOKEN Bearer token other options: --stealth Stealth mode --list-checks List all checks --config FILE Config file --save-results FILE Save results --load-results FILE Load results -v, --verbose Increase verbosity --quiet Quiet mode --version Show version ``` ## 输出格式 ### 控制台(默认) 带有严重程度细分的颜色编码、人类可读输出。 ### JSON 用于编程处理的结构化输出: ``` python -m webscanner http://example.com -o json -f results.json ``` ### HTML 带有过滤和严重程度图表的交互式报告: ``` python -m webscanner http://example.com -o html -f report.html ``` ### SARIF 用于 CI/CD 集成(VS Code,GitHub)的 OASIS 标准: ``` python -m webscanner http://example.com -o sarif -f results.sarif ``` ## 配置 创建一个 JSON 配置文件: ``` { "scanner": { "threads": 10, "timeout": 30, "delay": 0.1, "max_retries": 3, "requests_per_second": 0 }, "output": { "format": "console", "colors": true }, "network": { "proxies": {}, "headers": {} } } ``` 结合 CLI 使用: ``` python -m webscanner http://example.com --config config.json ``` ## 模板系统 WebScanner 支持类似 Nuclei 风格的 YAML 模板: ``` id: sqli-example name: SQL Injection Example severity: critical description: SQL injection vulnerability detected requests: - method: GET path: "/" matchers: - type: regex regex: - "SQL syntax.*MySQL" - "Warning.*mysql_.*" ``` 将模板放置在 `templates/` 目录中,或使用 `--templates` 标志。 ## 插件开发 通过扩展 `BaseCheck` 创建自定义检查: ``` from webscanner.checks.base import BaseCheck from webscanner.core.models import ScannerResult class MyCustomCheck(BaseCheck): def run(self): response = self.make_request('GET', self.base_url) if response and 'vulnerable' in response.text: self.add_result( url=self.base_url, check_name='my_custom_check', severity='high', description='Custom vulnerability found', evidence='...', recommendation='Fix it' ) return self.results ``` ## 性能提示 - 调整 `--threads` 以进行并行扫描 - 使用 `--delay` 避免被检测到 - 启用 `--stealth` 进行被动扫描 - 针对长时间扫描可保存/加载结果 - 结合 `--checks` 使用特定检查项进行针对性扫描 ## 环境要求 - Python 3.8+ - requests - beautifulsoup4 - lxml - pyyaml - jinja2 - tqdm ## 许可证 MIT 许可证
标签:C2日志可视化, CISA项目, CSRF, DAST, DOE合作, Heartbleed, LFI/RFI, Log4j, meg, Python3, SARIF, SSL/TLS, SSRF, Web安全, XSS, XXE, XXE攻击, 信息安全, 动态应用安全测试, 反序列化漏洞, 命令注入, 域名侦查, 安全头分析, 恶意代码分类, 恶意软件分析, 指纹识别, 攻击路径可视化, 漏洞情报, 网络安全, 聊天机器人, 自动化分析, 蓝队分析, 调试插件, 跨站脚本, 隐私保护, 黑客工具