alisip-3/AI-Powered-Vulnerability-Reporter

GitHub: alisip-3/AI-Powered-Vulnerability-Reporter

该工具通过 Playwright 自动化验证 Web 漏洞并截图取证,结合本地 Ollama 大模型生成专业的修复导向渗透测试报告。

Stars: 0 | Forks: 0

# AI 驱动的漏洞报告工具 这是一个自动化的概念验证和报告工具,能够识别 Web 漏洞、捕获视觉证据,并使用本地大型语言模型生成专业的渗透测试报告。 ## 项目概述 本项目旨在演示一种常见安全工作流的自动化过程:验证漏洞并为开发人员编写文档。受 **PortSwigger Web Security Academy** 关于身份验证和会话管理的实验启发,该工具专门针对一个定制构建的 **Flask** Web 应用程序。 该工具无需在发现 Bug 后手动编写报告,而是自动执行漏洞利用过程,对被破坏的状态进行截图,并使用本地 AI 生成结构化、以修复为导向的报告。 ## 在线演示 **⚠️ 警告:这是一个出于教育目的故意设置的存在漏洞的应用程序!** - **银行应用程序**:https://python-pickwiz.onrender.com - **测试凭据**:`admin` / `12345` **免责声明**:此应用程序包含已知的安全漏洞(硬编码的会话 token、失效的访问控制)。请勿使用真实的凭据或敏感数据。本应用仅用于演示安全概念和自动化测试工作流。 ## 功能 - **自动化漏洞利用**:使用 Playwright 模拟浏览器,注入 payload(例如,硬编码的会话 cookie),并验证失效的访问控制。 - **视觉证据**:自动捕获被利用状态下的无头浏览器截图,作为不可否认的概念验证。 - **本地 AI 报告生成**:集成 Ollama (Llama 3.2),生成包含执行摘要和安全代码修复示例的结构化、专业的漏洞报告。 - **零外部 API 依赖**:所有 AI 处理均在本地进行,确保敏感的漏洞数据永远不会离开本机。 - ## 技术栈 - **目标应用程序**:Python Flask(定制构建的存在漏洞的银行应用程序) - **漏洞概念**:失效的访问控制 / 可预测的会话 token(与 PortSwigger Web Security Academy 保持一致) - **自动化**:Python、Playwright (异步) - **AI 集成**:Ollama (本地 LLM)、Prompt 工程 - ## 工作原理 1. **目标定位**:脚本针对特定的 endpoint(例如,`/secure-zone/bank`)。 2. **漏洞利用**:Playwright 注入已知的包含漏洞的 cookie(`session_token=secure_user_session_12345`)并导航至该页面。 3. **证据捕获**:如果页面成功加载(HTTP 200),将保存一张截图(`proof_of_exploit.png`)。 4. **AI 分析**:脚本将技术发现发送至本地 Ollama 实例,并附带严格的 prompt 模板。 5. **报告生成**:生成一份全面的 Markdown 报告(`vulnerability_report.md`),其中嵌入了截图并提供了对开发者友好的修复建议。 ## 前置条件 - Python 3.10+ - 已安装并在本地运行 [Ollama](https://ollama.com/) - 已下载 `llama3.2` 模型(`ollama pull llama3.2`) ## 安装与使用 1. 克隆代码库: git clone https://github.com/YOUR_USERNAME/AI-Powered-Vuln-Reporter.git cd AI-Powered-Vuln-Reporter 2. 安装依赖: ``` pip install -r requirements.txt playwright install chromium ``` 3. 确保 Ollama 在后台运行,然后执行脚本: ``` python main.py ``` 4. 在你的 IDE 或 GitHub 中查看生成的 vulnerability_report.md 以了解最终输出。 ## 示例输出: 成功执行后,该工具将生成一份专业的报告。“Technical Details”部分将自动渲染捕获的证据: ![](https://github.com/alisip-3/AI-Powered-Vulnerability-Reporter/blob/main/output/proof_of_exploit.png) ## 经验总结 - **发现与自动化**:虽然自动化扫描器很棒,但在自动化 PoC 之前,了解如何手动发现漏洞(例如,检查网络流量中的静态 cookie)至关重要。 - **Prompt 工程**:要从 LLM 获取有用的报告,需要进行严格的 prompt 要求。定义精确的输出结构(执行摘要、影响、修复建议)可以防止 AI 生成通用且无用的文本。 - **错误处理**:集成无头浏览器需要健壮的超时和状态等待逻辑,以处理现实世界中的网络延迟(特别是在像 Render 这样的免费托管平台上)。 # License 本项目仅用于教育和作品集展示目的。在对任何应用程序进行测试之前,请务必确保已获得明确授权。
标签:AI风险缓解, Modbus, 本地大模型, 特征检测, 自动化PoC, 自动化报告, 逆向工具