GauriSomwanshi29/Web_Vulnerability_Scanner

GitHub: GauriSomwanshi29/Web_Vulnerability_Scanner

一个基于 Python 的教育型 Web 漏洞扫描器,通过向 URL 参数和表单注入 payload 来检测反射型跨站脚本攻击。

Stars: 2 | Forks: 0

# 🔐 Web 漏洞扫描器 ## 📌 项目概述 **Syntecxhub Web Vulnerability Scanner** 是一个基于 Python 的网络安全项目,作为 **Syntecxhub 网络安全实习项目** 的一部分开发。 该工具旨在检测 Web 应用程序中的 **反射型跨站脚本攻击 (XSS)** 以及基本的 **输入净化缺陷**。它会扫描 URL 参数和 HTML 表单,注入安全的测试 payload,分析服务器响应,并生成详细的漏洞报告。 本项目仅用于 **教育、道德和授权的测试目的**。它应仅用于本地测试应用程序、DVWA、特意设计的漏洞实验平台,或已获得书面许可的网站。 ## 🎯 项目目标 本项目的主要目标是了解 Web 应用程序如何处理用户输入,以及不当的输入校验是如何导致诸如 **反射型 XSS** 等安全漏洞的。 该扫描器有助于学习: * Web 表单如何接收用户输入 * 如何测试 URL 参数 * 如何注入 XSS payload * 如何在服务器响应中检测被反射的 payload * 如何将漏洞发现结果保存到报告中 * 如何进行道德测试和负责任的扫描 ## 🚀 主要功能 * 🔎 扫描 URL 参数中的反射型 XSS * 📝 检测并测试 HTML 表单 * 🌐 支持 GET 和 POST 表单测试 * 💉 从单独的文本文件中注入 XSS payload * 🧪 检查响应中是否包含被反射的 payload * 📄 将存在漏洞的 endpoint 保存在 `report.txt` 中 * ⏱️ 包含请求间的延迟以实现基础的 rate-limiting * ⚠️ 在扫描前包含权限确认 * 🛡️ 使用自定义的 User-Agent 进行身份标识 * 💻 包含一个用于安全演示的本地漏洞测试应用程序 ## 🛠️ 使用的技术 | Technology | 用途 | | ------------- | ------------------------------- | | Python | 主要编程语言 | | Requests | 发送 HTTP 请求 | | BeautifulSoup | 解析 HTML 表单 | | Colorama | 彩色终端输出 | | HTTPServer | 创建本地测试应用程序 | ## 📁 文件夹结构 ``` Syntecxhub_Web_Vulnerability_Scanner/ │ ├── web_vuln_scanner.py ├── test_xss_app.py ├── xss_payloads.txt ├── requirements.txt ├── report.txt ├── README.md └── SECURITY.md ``` ## 📄 文件说明 ### `web_vuln_scanner.py` 这是主要的扫描器文件。它执行漏洞扫描过程。 它执行以下任务: * 从用户处获取目标 URL * 检查用户是否具有扫描权限 * 从 `xss_payloads.txt` 加载 XSS payload * 测试 URL 参数 * 在页面上查找 HTML 表单 * 将 payload 注入到表单输入中 * 检查响应中是否反射了 payload * 将结果保存在 `report.txt` 中 ### `test_xss_app.py` 该文件包含一个存在漏洞的本地测试 Web 应用程序。 它用于安全测试和演示。该应用程序直接在页面上反射用户输入,这有助于扫描器检测反射型 XSS。 本地 URL 示例: ``` http://127.0.0.1:8001/?q=test ``` ### `xss_payloads.txt` 该文件包含用于测试的 XSS payload。 payload 示例: ``` "> ``` ### `requirements.txt` 该文件包含运行该项目所需的所有 Python 库。 ``` requests beautifulsoup4 colorama ``` ### `report.txt` 该文件存储最终的扫描结果。 如果扫描器发现存在漏洞的参数或表单,它将保存以下详细信息: * 存在漏洞的 URL * 参数名称 * 使用的 payload * 表单提交方法 * 问题描述 ### `SECURITY.md` 该文件解释了项目的道德规范和安全策略。 它明确指出扫描器必须仅用于授权目标。 ## ⚙️ 安装步骤 ### 第 1 步:克隆仓库 ``` git clone https://github.com/YourUsername/Syntecxhub_Web_Vulnerability_Scanner.git ``` ### 第 2 步:进入项目文件夹 ``` cd Syntecxhub_Web_Vulnerability_Scanner ``` ### 第 3 步:安装必要的库 ``` pip install -r requirements.txt ``` 或者使用: ``` python -m pip install requests beautifulsoup4 colorama ``` ## ▶️ 如何运行项目 该项目包含两部分: 1. 存在漏洞的本地测试应用 2. Web 漏洞扫描器 两者应在不同的终端中运行。 ## 🧪 第 1 步:运行本地测试应用程序 打开第一个终端并运行: ``` python test_xss_app.py ``` 你应该会看到: ``` Local XSS test app running at: http://127.0.0.1:8001/?q=test Press Ctrl + C to stop server ``` 现在在浏览器中打开此 URL: ``` http://127.0.0.1:8001/?q=test ``` 你会看到一个简单的搜索页面。 ## 🔍 第 2 步:运行 Web 漏洞扫描器 打开第二个终端并运行: ``` python web_vuln_scanner.py ``` 扫描器会询问权限: ``` Do you have permission to scan this target? (yes/no): ``` 输入: ``` yes ``` 输入目标 URL: ``` http://127.0.0.1:8001/?q=test ``` 输入延迟时间: ``` 1 ``` ## ✅ 预期输出 如果扫描器检测到反射型 XSS,终端输出将如下所示: ``` [+] Testing URL parameters for reflected XSS... Testing parameter: q | Payload: [VULNERABLE] Reflected XSS detected! [+] Searching and testing forms... [+] Found 1 form(s). [VULNERABLE FORM] Reflected XSS detected! [+] Scan completed. [+] Report saved in report.txt ``` ## 📊 示例报告输出 扫描器将结果保存在 `report.txt` 中。 示例: ``` Syntecxhub Web Vulnerability Scanner Report ======================================================= Target URL: http://127.0.0.1:8001/?q=test Scan Time: 2026-06-01 20:35:00 ======================================================= [VULNERABLE URL PARAMETER] URL: http://127.0.0.1:8001/?q=%3Cscript%3Ealert%281%29%3C%2Fscript%3E Parameter: q Payload: Issue: Payload reflected in response without proper sanitization. ------------------------------------------------------- [VULNERABLE FORM] Form Action: http://127.0.0.1:8001/?q=test Method: GET Payload: Data Sent: {'q': ''} Issue: Payload reflected in form response without proper sanitization. ------------------------------------------------------- ``` ## 🧠 什么是反射型 XSS? **反射型跨站脚本攻击**,也称为 **Reflected XSS**,是一种 Web 漏洞,指用户输入未经适当验证或净化,便直接返回到网页响应中。 例如,如果一个网站从 URL 参数中获取输入并直接显示在页面上,攻击者可能会尝试注入恶意脚本。 示例: ``` http://example.com/search?q= ``` 如果网站未对此脚本进行净化便将其显示,浏览器可能会执行它。 本项目有助于演示如何在安全且受控的环境中检测反射输入。 ## 🛡️ 道德使用 本项目仅用于学习和道德网络安全实践。 ### ✅ 允许的目标 你可以在以下对象上使用此扫描器: * Localhost 应用程序 * DVWA * 特意设计的漏洞实验平台 * 个人测试网站 * 已给予书面许可的 Web 应用程序 ### ❌ 禁止的目标 请勿在以下对象上使用此扫描器: * 未经许可的公共网站 * 政府网站 * 未经批准的高校或公司网站 * 银行或支付网站 * 未经书面授权的任何第三方系统 ## 📌 项目工作流程 ``` Start ↓ Run Local Test App ↓ Open Test URL in Browser ↓ Run Web Vulnerability Scanner ↓ Enter Permission ↓ Enter Target URL ↓ Load XSS Payloads ↓ Test URL Parameters ↓ Find and Test Forms ↓ Detect Reflected Payloads ↓ Save Results in report.txt ↓ End ``` ## 🌟 学习收获 完成该项目后,我学到了: * Web 应用程序如何处理用户输入 * 反射型 XSS 漏洞是如何产生的 * 如何使用 Python 发送 HTTP 请求 * 如何使用 BeautifulSoup 解析 HTML 表单 * 如何安全地测试 URL 参数 * 如何生成漏洞报告 * 为什么道德黑客必须始终遵循基于授权的测试 ## 🔮 未来改进 未来,可以通过添加以下功能来改进本项目: * 高级爬虫支持 * 更多类型的 XSS payload * HTML 报告生成 * CSV 报告导出 * 严重程度评级系统 * 区分反射型和存储型 XSS * 支持基于登录状态的扫描 * 更好的输入净化分析 * 更易于使用的 GUI 界面 ## ⚠️ 免责声明 本项目仅出于教育和实习目的开发。 作者不对本工具的任何滥用行为负责。用户应全权负责遵守网络安全法律、道德准则以及基于授权的测试规则。 ## 👩‍💻 作者 **Gauri Somwanshi❤️** ## ⭐ 结语 这个项目帮助我了解了 Web 漏洞测试的基础知识、反射型 XSS 检测、payload 注入、响应分析以及负责任的网络安全实践。 网络安全不仅在于发现漏洞。它还在于进行道德测试、负责任地报告以及提升安全性。 ## ⭐ 支持 如果你喜欢这个项目,请在 GitHub 上给它点个 ⭐ !
标签:Python, Splunk, Web安全, XSS检测, 加密, 字符串匹配, 安全测试, 攻击性安全, 无后门, 漏洞扫描器, 蓝队分析, 逆向工具