BitHarsh18/ShadowXSS

GitHub: BitHarsh18/ShadowXSS

一款基于 Python 的模块化 XSS 漏洞扫描器,通过自动化爬取、payload 注入和响应分析来检测 Web 应用中的反射型跨站脚本漏洞。

Stars: 0 | Forks: 0

# ShadowXSS - 基于 Python 的 XSS 漏洞扫描器 ## 概述 ShadowXSS 是一款基于 Python 的模块化跨站脚本攻击 (XSS) 漏洞扫描器,旨在自动化发现 Web 应用程序中的反射型 XSS 漏洞。 该项目从零开始构建,旨在通过实现爬取、表单提取、payload 注入、URL 参数测试、漏洞检测和报告生成,来理解现实世界中的 Web 漏洞扫描器是如何工作的。 ShadowXSS 专注于通过使用多种 XSS payload 对 Web 表单和 URL 参数进行自动化测试,来检测反射型 XSS 漏洞。 ## 为什么开发这个项目 现代 Web 应用程序经常受到输入验证和输出编码问题的困扰,这些问题可能导致跨站脚本攻击 (XSS) 漏洞。 该项目的目标是: * 学习进攻性 Web 安全概念 * 理解自动化扫描器的工作原理 * 获得 HTTP 请求和 Web 爬取的实践经验 * 构建一个与 SOC 分析师和安全分析师角色相关的网络安全项目 * 开发一款模块化且可扩展的安全工具 HTML 漏洞报告 image image image image image ### CLI 命令执行 image ### JSON 报告生成 image ## 功能 ### Web 爬取 * 自动发现内部链接 * 爬取目标页面 * 识别攻击面 ### 表单发现 * 检测 HTML 表单 * 提取: * Form action * Form method * Input fields ### Payload 注入 支持: * GET 请求 * POST 请求 自动将 XSS payload 注入到发现的输入项中。 ### URL 参数测试 测试查询字符串参数,例如: ``` /profile?name=test ``` Payload 会自动插入到参数中并进行测试。 ### 多 Payload 引擎 目前支持 20 多种 XSS payload,包括: * Script Injection * Event Handler Injection * SVG Payload * Image Error Payload * Iframe Payload * Autofocus Payload * Object/Embed Payload ### 反射型 XSS 检测 通过分析服务器响应来检测反射的 payload。 当前检测逻辑: ``` payload in response.text ``` ### 报告 生成: * JSON 报告 * 专业的 HTML 报告 每个发现包含: * 存在漏洞的 URL * 使用的 payload * 请求方法 * 漏洞类型 ## 项目架构 ``` ShadowXSS │ ├── main.py │ ├── core │ ├── crawler.py │ ├── injector.py │ ├── detector.py │ ├── url_scanner.py │ ├── payloads.py │ ├── reporter.py │ └── html_reporter.py │ ├── reports │ ├── report.json │ └── report.html │ └── vulnerable_app.py ``` ## 模块说明 ### crawler.py 负责: * 表单提取 * 链接发现 * 表单元数据提取 函数: * get_forms() * get_form_details() * get_links() ### injector.py 负责: * Payload 插入 * GET 请求 * POST 请求 函数: * submit_form() ### detector.py 负责: * 反射型 payload 检测 函数: * is_vulnerable() ### url_scanner.py 负责: * URL 参数测试 使用的概念: * urlparse() * parse_qs() * urlencode() * urlunparse() ### payloads.py 存储测试期间使用的所有 XSS payload。 当前 payload 数量: 20+ ### reporter.py 负责: * 存储发现结果 * 导出 JSON 输出: ``` { "url": "...", "payload": "...", "method": "...", "type": "Reflected XSS" } ``` ### html_reporter.py 负责: * 暗色主题的 HTML 报告 * 易读的漏洞摘要 ## 检测工作流程 ``` Target URL │ ▼ Web Crawling │ ▼ Link Discovery │ ▼ Form Discovery │ ▼ Payload Injection │ ▼ Response Analysis │ ▼ XSS Detection │ ▼ Report Generation ``` ## 扫描示例 ``` python3 main.py ``` ``` ENTER TARGET URL: http://127.0.0.1:5000 ``` 扫描器: * 爬取网站 * 提取表单 * 测试 URL 参数 * 注入 20 多种 payload * 检测反射型 XSS * 生成报告 ## 漏洞测试实验室 为了进行测试,构建了一个自定义的含有漏洞的 Flask 应用程序。 包含的漏洞页面: ### 搜索页面 通过查询参数引发的反射型 XSS。 ``` /search?q=test ``` ### 登录页面 通过 POST 参数引发的反射型 XSS。 ``` /login ``` ### 个人资料页面 通过 URL 参数引发的反射型 XSS。 ``` /profile?name=test ``` ### 联系页面 为未来的 textarea 测试而构建。 ## 使用的技术 * Python * Requests * BeautifulSoup * Flask * HTML * CSS * JSON ## 展现的技能 ### 网络安全 * Web 应用程序安全 * 跨站脚本攻击 (XSS) * 漏洞评估 * 安全测试 ### 编程 * Python * 模块化架构 * 面向对象编程 * HTTP 请求 ### 安全工具开发 * 爬虫引擎 * Payload 管理 * 检测逻辑 * 报告系统 ## 当前功能 ### 已实现 * Web 爬取 * 表单发现 * 链接发现 * GET 表单测试 * POST 表单测试 * URL 参数测试 * 20+ Payload 测试 * 反射型 XSS 检测 * JSON 报告 * HTML 报告 * 模块化设计 ## 当前局限性 当前版本可检测: * 反射型 Payload 当前版本尚未验证: * 实际的 JavaScript 执行 * 浏览器执行上下文 * DOM 型 XSS 扫描器目前通过检查 payload 是否在响应中被反射,来识别反射型 XSS 候选对象。 ## 未来路线图 ### 阶段 1 * 完善会话支持 * Textarea 检测 * Select 字段检测 ### 阶段 2 * 身份验证支持 * 登录自动化 * Cookie 持久化 ### 阶段 3 * 外部 Payload 文件 示例: ``` payloads/ ├── basic.txt ├── advanced.txt ├── waf_bypass.txt ``` ### 阶段 4 * 50+ Payload 库 ### 阶段 5 * 存储型 XSS 检测 ### 阶段 6 * DOM 型 XSS 检测 ### 阶段 7 * 多线程扫描 ### 阶段 8 * 自定义 Header 支持 ### 阶段 9 * 命令行参数 示例: ``` python3 shadowxss.py \ --url http://target.com \ --output report.html ``` ### 阶段 10 * Playwright 集成 * Selenium 集成 * 基于真实浏览器的 XSS 验证 ## 免责声明 本项目专为教育目的和授权的安全测试环境而开发。 未经明确许可,请勿将此工具用于任何系统。 ## 作者 Harshit Kumar Srivastava 网络安全爱好者 | 安全分析师候选人 | Python 开发者
标签:CISA项目, Homebrew安装, Python, Selenium, Splunk, Web安全, XSS检测, 加密, 后端开发, 多模态安全, 字符串匹配, 无后门, 漏洞扫描器, 网络信息收集, 蓝队分析, 逆向工具