HikmatAsifli/xssFinder

GitHub: HikmatAsifli/xssFinder

一个基于 Python 的自动化 XSS 漏洞扫描器,通过向目标 URL 注入分类 payload 并分析响应来检测跨站脚本漏洞,同时生成包含风险等级和修复建议的 JSON 报告。

Stars: 0 | Forks: 0

# XSS Finder **XSS Finder** 是一个旨在检测 Web 应用程序中跨站脚本攻击 (XSS) 漏洞的自动化工具。它使用按类别组织的一组全面预定义 payload 来扫描目标 URL 并记录结果。此外,该工具会以 JSON 格式生成任何已识别漏洞的详细报告,以便于轻松跟踪和分析。 ## 🚀 新特性 (版本 2.0) - **分类 Payload**:payload 被组织为 5 个类别(basic、encoded、event_handlers、dom_based、filter_bypass) - **高级 CLI**:带有多个选项的完整命令行界面 - **基于类别的扫描**:使用特定的 payload 类别进行扫描 - **多参数测试**:针对常见参数(q, search, query, input 等)进行测试 - **URL 路径注入**:测试在 URL 路径中的 payload 注入 - **增强的报告**:包含统计信息、风险等级和建议的全面 JSON 报告 - **详细模式**:实时扫描进度输出 - **输入验证**:URL 验证和输入清理实用程序 - **更好的日志记录**:增强了包含参数、方法和状态码信息的日志记录 ## 目录 - [功能](#features) - [安装说明](#installation) - [用法](#usage) - [基本扫描](#basic-scanning) - [高级扫描](#advanced-scanning) - [CLI 选项](#cli-options) - [Payload 类别](#payload-categories) - [配置](#configuration) - [日志记录](#logging) - [报告生成](#report-generation) - [测试](#testing) - [扩展工具](#extending-the-tool) - [最佳实践](#best-practices) - [贡献](#contributing) - [许可证](#license) ## 功能 - **针对性 XSS 扫描**:输入目标 URL 以针对各种 XSS payload 进行测试 - **可配置 Payload**:25+ 种按 5 个类别组织的 payload,用于全面测试 - **多参数测试**:自动测试常见参数 (q, search, query, input, text, keyword, id, name, page) - **多个注入点**:测试 GET 参数、POST 数据和 URL 路径注入 - **详细日志记录**:捕获每次扫描的结果,包括测试的 payload、参数、方法和状态码 - **自动生成报告**:生成包含统计信息、风险评估和修复建议的综合 JSON 报告 - **可自定义设置**:设置请求超时、选择 payload 类别并管理扫描配置 - **详细输出**:扫描期间实时跟踪进度 ## 安装说明 ### 前置条件 请确保您已安装 `Python 3.x`。您可以从 Python 官方网站下载它:[https://www.python.org/downloads/](https://www.python.org/downloads/)。 ### 克隆仓库 ``` git clone https://github.com/HikmatAsifli/xssFinder.git cd xssFinder ``` ## 安装依赖 使用 pip 安装所需的依赖项: ``` pip install -r requirements.txt ``` ## 用法 ### 基本扫描 要针对目标 URL 运行基本扫描,请执行以下命令: ``` cd src python main.py -u https://example.com ``` 该脚本将针对常见参数测试所有 payload,并记录任何检测到的漏洞。 ### 高级扫描 XSS Finder 提供了多种高级选项用于自定义扫描: #### CLI 选项 ``` python main.py --help usage: main.py [-h] [-u URL] [-c {basic,encoded,event_handlers,dom_based,filter_bypass,all}] [-v] [-r REPORT] [-t TIMEOUT] XSS Finder - Automated XSS Vulnerability Scanner options: -h, --help show this help message and exit -u URL, --url URL Target URL to scan -c {basic,encoded,event_handlers,dom_based,filter_bypass,all}, --category Payload category to test (default: all) -v, --verbose Enable verbose output -r REPORT, --report REPORT Generate report to specified file -t TIMEOUT, --timeout TIMEOUT Request timeout in seconds (default: 5) ``` #### 示例 **带有详细输出的扫描:** ``` python main.py -u https://example.com -v ``` **仅扫描 basic payload:** ``` python main.py -u https://example.com -c basic ``` **自定义超时和报告文件:** ``` python main.py -u https://example.com -t 10 -r custom_report.json ``` **使用 filter_bypass payload 进行扫描:** ``` python main.py -u https://example.com -c filter_bypass -v ``` ## Payload 类别 XSS Finder 包含 25+ 种按 5 个类别组织的 payload: | 类别 | 描述 | 数量 | |----------|-------------|-------| | `basic` | 标准 XSS payload | 5 | | `encoded` | URL 和 HTML 编码的 payload | 4 | | `event_handlers` | 基于事件处理程序的 payload | 5 | | `dom_based` | 基于 DOM 的 XSS payload | 3 | | `filter_bypass` | WAF/过滤器绕过 payload | 5 | ### 类别示例 **Basic:** ``` "" "" "" ``` **Encoded:** ``` "%3Cscript%3Ealert('XSS')%3C/script%3E" "<script>alert('XSS')</script>" ``` **Filter Bypass:** ``` "" "ipt>alert('XSS')ipt>" ``` ## 配置 `src/configs/settings.py` 文件包含脚本的关键设置: - **TIMEOUT**:请求超时时间(以秒为单位,默认值:5) - **TARGET_URL**:默认目标 URL(默认为空,使用 CLI 指定) - **DEFAULT_CATEGORIES**:要使用的 payload 类别列表 - **LOG_FILE**:日志文件的位置 - **DEFAULT_REPORT_FILE**:默认报告输出文件名 *示例设置:* ``` TIMEOUT = 5 # Request timeout in seconds TARGET_URL = "" # Empty requires CLI input DEFAULT_CATEGORIES = ['basic', 'encoded', 'event_handlers', 'dom_based', 'filter_bypass'] ``` ## 日志记录 XSS Finder 在 `logs/scan.log` 中维护所有扫描结果的详细日志。该日志包含有关每次测试的综合信息: ``` 2024-09-14 10:15:30 Payload: , Vulnerable: True, Parameter: q, Method: GET/POST, Status: 200 2024-09-14 10:15:32 Payload: , Vulnerable: False, Parameter: search, Method: GET/POST, Status: 200 ``` ## 报告生成 在每次扫描结束时,XSS Finder 会生成一份全面的 JSON 报告。该报告包括: - **元数据**:工具版本,生成时间戳 - **扫描摘要**:目标 URL,总测试数,发现的漏洞,风险等级 - **按类别划分的漏洞**:按 payload 类别划分的发现结果 - **按参数划分的漏洞**:按易受攻击的参数划分的发现结果 - **详细发现**:所有漏洞的完整列表 - **建议**:安全修复建议 ### 示例报告结构 ``` { "report_metadata": { "generated_at": "2024-09-14T10:15:30", "tool_name": "XSS Finder", "version": "2.0" }, "scan_summary": { "target_url": "https://example.com", "total_tests": 25, "vulnerabilities_found": 3, "risk_level": "MEDIUM" }, "vulnerabilities_by_category": { "basic": [...], "event_handlers": [...] }, "recommendations": [ "Implement proper input validation and sanitization", "Use Content Security Policy (CSP) headers", "Encode output data appropriately" ] } ``` ## 测试 运行测试套件以验证功能: ``` # 运行 utility 测试 cd tests python test_utils.py -v # 运行 scanner 测试(由于网络请求,可能耗时较长) python test_scanner.py -v ``` ## 扩展工具 ### 添加新的 Payload 要添加新的 XSS payload,请编辑 `src/payloads/xss_payloads.py`: ``` PAYLOADS = { "basic": [ "", # Add your new payloads here ], # ... other categories } ``` ### 自定义参数 要测试其他参数,请修改 `src/scanner.py` 中的 `common_params` 列表: ``` common_params = ['q', 'search', 'query', 'input', 'text', 'keyword', 'id', 'name', 'page', 'your_param'] ``` ## 扩展工具 ### 添加新的 Payload 要添加新的 XSS payload,只需将它们附加到 `src/payloads/payloads.py` 的 `PAYLOADS` 列表中。您还可以从外部来源或文件导入 payload。 ### 高级日志记录 要进行更高级的日志记录(例如,记录 HTTP 响应头、请求体),请扩展 `log_scan_results` 函数以捕获有关每个请求的附加信息。 ### 多线程扫描 为了实现更快的扫描,请使用 Python 的 `threading` 模块实现多线程。这在扫描多个 URL 或具有大量输入字段的目标时特别有用。 ``` import threading # 多线程扫描示例 thread = threading.Thread(target=scan_url, args=(url,)) thread.start() ``` ## 最佳实践 - 在测试网站漏洞之前,请务必获得许可。 - 定期更新 payload 以包含新的 XSS 模式。 - 保持日志记录和报告的结构化,以便于分析。 ## 贡献 我们欢迎您的贡献!如果您想报告问题、提出功能建议或提交 pull request,请遵循标准的 GitHub 工作流程。 1. Fork 该仓库 2. 创建您的功能分支 (`git checkout -b feature/your-feature`) 3. 提交您的更改 (`git commit -am 'Add your feature'`) 4. 推送到该分支 (`git push origin feature/your-feature`) 5. 打开一个 pull request ## 许可证 本项目基于 [MIT](https://choosealicense.com/licenses/mit/) 许可证授权 - 有关详细信息,请参阅 LICENSE 文件。
标签:CISA项目, DOM型XSS, Homebrew安装, JSON报告, Payload测试, Python安全工具, URL路径注入, Web安全, XSS扫描器, XSS检测, 事件处理器, 多参数测试, 安全报告生成, 编码绕过, 网络安全, 自动化分析, 自动化安全工具, 蓝队分析, 跨站脚本, 隐私保护, 黑盒测试