cipher-saif/vulnsight

GitHub: cipher-saif/vulnsight

一站式 Web 安全漏洞扫描平台,将反射型 XSS 检测、静态代码安全审计、CVE 威胁情报与可视化分析仪表盘整合为一个容器化部署的 Python 应用。

Stars: 0 | Forks: 0

``` ██╗ ██╗██╗ ██╗██╗ ███╗ ██╗███████╗██╗ ██████╗ ██╗ ██╗████████╗ ██║ ██║██║ ██║██║ ████╗ ██║██╔════╝██║██╔════╝ ██║ ██║╚══██╔══╝ ██║ ██║██║ ██║██║ ██╔██╗ ██║███████╗██║██║ ███╗███████║ ██║ ╚██╗ ██╔╝██║ ██║██║ ██║╚██╗██║╚════██║██║██║ ██║██╔══██║ ██║ ╚████╔╝ ╚██████╔╝███████╗██║ ╚████║███████║██║╚██████╔╝██║ ██║ ██║ ╚═══╝ ╚═════╝ ╚══════╝╚═╝ ╚═══╝╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ```
# VulnSight — Web 漏洞扫描器 **检测。分析。防御。** 一个全栈、实时的安全情报平台,用于发现 XSS 漏洞, 审计源代码中的关键反模式,并追踪实时的 CVE 威胁动态 — 所有功能都集成在一个时尚、支持深色模式的仪表盘中。
## 概述 VulnSight 是一个使用 Python 和 Streamlit 构建的专业级 Web 安全平台。它将自动化的 XSS 扫描引擎、静态源代码分析器、实时 CVE 情报动态和完整的分析仪表盘结合到一个可部署的应用程序中。 VulnSight 专为安全研究人员、开发人员和渗透测试人员设计,使漏洞发现变得快速、直观且可操作——无需任何外部工具或复杂的配置。它可以在本地快速启动,或在几分钟内作为容器化服务部署。 ## 目标 - 自动检测 Web 应用程序表单中的 Reflected XSS 漏洞 - 通过基于正则表达式的静态分析,识别源代码中的关键安全反模式 - 按 CVSS 严重程度评分排列,展示最新的 CVE 披露信息 - 提供包含严重程度细分和发现摘要的会话级分析 - 生成可导出的 HTML 漏洞报告,用于文档记录和客户交付 - 通过 Docker 将整个平台打包为容器化、一键部署的应用程序 ## 工具与技术
![Python](https://img.shields.io/badge/Python-3776AB?style=for-the-badge&logo=python&logoColor=white) ![Streamlit](https://img.shields.io/badge/Streamlit-FF4B4B?style=for-the-badge&logo=streamlit&logoColor=white) ![Docker](https://img.shields.io/badge/Docker-2496ED?style=for-the-badge&logo=docker&logoColor=white) ![HTML5](https://img.shields.io/badge/HTML5-E34F26?style=for-the-badge&logo=html5&logoColor=white) ![CSS3](https://img.shields.io/badge/CSS3-1572B6?style=for-the-badge&logo=css3&logoColor=white) ![Pandas](https://img.shields.io/badge/Pandas-150458?style=for-the-badge&logo=pandas&logoColor=white) ![BeautifulSoup](https://img.shields.io/badge/BeautifulSoup4-3DDC84?style=for-the-badge&logo=python&logoColor=white) ![Jinja2](https://img.shields.io/badge/Jinja2-B41717?style=for-the-badge&logo=jinja&logoColor=white) ![Requests](https://img.shields.io/badge/Requests-2CA5E0?style=for-the-badge&logo=python&logoColor=white) ![NVD](https://img.shields.io/badge/NVD%20CVE%20Feed-333333?style=for-the-badge&logo=databricks&logoColor=white)
## 项目结构 ``` VulnSight/ │── app.py # Main Streamlit application & routing │── scanner.py # XSS scanning engine (form crawler + payload injection) │── analyzer.py # Static source-code security analyzer │── dashboard.py # Analytics dashboard renderer │── reporter.py # HTML report generator (Jinja2) │── cve_feed.py # CVE threat intelligence feed │── auth.py # Session-based authentication module │── payloads.txt # XSS payload wordlist │── requirements.txt # Python dependencies │── Dockerfile # Container build definition │── docker-compose.yml # Service orchestration │── Screenshots/ │ │── vulnsight-login.png │ │── vuln-scanner.png │ │── scanning-target.png │ │── scanner-results.png │ │── scanner-report.png │ │── code-analyzer.png │ │── analyzer-results.png │ │── analyzer-result-details.png │ │── analytics-dashboard.png │ │── threat-intel.png │ └── threat-intel-detail.png ``` ## 方法论与实现 ### 1. 认证层 基于会话的登录系统,通过 Streamlit 的 session state 管理使用 SHA-256 哈希处理的凭据。支持多用户账户、登出操作以及会话结束时的自动状态清理。 ### 2. XSS 扫描引擎 扫描器会爬取目标 URL,使用 BeautifulSoup 解析所有 HTML 表单,并将 XSS payload 字典表系统地注入到每个可填写的输入字段中。通过同时验证原始和 HTML 编码的 payload 变体来确认反射情况,以减少漏报。SSL 错误得到了妥善处理,并带有回退重扫机制。 ### 3. 静态代码分析器 基于正则表达式的规则引擎针对 12 条安全规则对粘贴的源代码逐行扫描,涵盖:硬编码凭据、通过字符串拼接导致的 SQL 注入、`eval()` / `exec()` 的使用、`subprocess shell=True`、不安全的反序列化(`pickle`、`yaml.load`)、禁用 SSL 验证、`innerHTML` 赋值、`document.write`、调试模式、MD5/SHA-1 的使用以及开放重定向。每项发现都包含行号、代码片段和修复指导。 ### 4. 分析仪表盘 会话中发现的结果会被聚合到指标卡片、严重程度细分条形图、发现类型分布面板和分页结果表格中——所有这些都通过 Streamlit 内部的自定义 HTML/CSS 组件进行渲染。 ### 5. CVE 威胁情报动态 提取结构化的 CVE 数据(ID、描述、严重程度、CVSS 评分)并按危急程度排序。架构支持实时的 NVD 2.0 API 集成,并提供用于离线使用的模拟动态源。 ### 6. 报告生成 由 Jinja2 驱动的 HTML 报告渲染器可生成一份完全独立、样式精美的漏洞报告,包含严重程度摘要框、发现结果表格以及 XSS 安全的输出转义——可直接从仪表盘下载。 ## 结果与截图 ### 登录 — 安全会话认证 | ![Login](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/0214b3ee3d001646.png) | |:--:| | *SHA-256 哈希凭据存储与简洁的侧边栏登录表单。会话在标签页导航期间持续存在,并在登出时自动清除。* | ### 扫描器 — 目标配置 | ![Scanner](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/5b28e32fe5001648.png) | |:--:| | *扫描模块接受任何 HTTP/HTTPS 目标 URL。内置警告旨在强制要求合乎道德的使用——仅限测试已授权的目标。* | ### 扫描器 — 正在进行主动扫描 | ![Scanning](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/316d85d9db001649.png) | |:--:| | *引擎会爬取表单、注入 payload 并实时传输结果。每个请求包含 10 秒的超时设置和 SSL 错误恢复机制。* | ### 扫描器 — 漏洞发现 | ![Results](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/dc51d41582001650.png) | |:--:| | *已确认的 Reflected XSS 发现,显示触发的 payload、受影响的 URL 和严重程度徽章。每个表单仅确认一次命中,以防止结果泛滥。* | ### 扫描器 — 导出的 HTML 报告 | ![Report](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/219ca9746f001651.png) | |:--:| | *一份样式精美且完全独立的 HTML 报告,包含严重程度摘要卡片和完整的发现结果表格——可直接用于客户交付或内部文档记录。* | ### 代码分析器 — 源代码输入 | ![Analyzer Input](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/a196b11632001652.png) | |:--:| | *粘贴任何源代码——Python、JavaScript 或任何基于文本的语言——引擎会立即根据 12 条安全规则对其进行扫描。* | ### 代码分析器 — 所有发现 | ![Analyzer Results](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/8217a8cfb2001654.png) | |:--:| | *所有检测到的问题均附有严重程度徽章、行号和问题类别列出。单个易受攻击的文件可以同时暴露出严重、高、中和低级别的发现。* | ### 代码分析器 — 发现详情 | ![Analyzer Detail](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/c032df454f001655.png) | |:--:| | *每项发现均可展开以显示确切的代码片段和有针对性的修复建议——没有歧义,无需猜测。* | ### 分析 — 会话仪表盘 | ![Analytics](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/3062f18f39001656.png) | |:--:| | *四张指标卡片、一个严重程度分布面板、一个发现类型细分图以及一个分页结果表格——提供会话中发现的所有内容的完整全貌。* | ### 威胁情报 — CVE 动态 | ![Threat Intel](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/73f633d4ff001657.png) | |:--:| | *按 CVSS 评分排序的实时 CVE 条目。严重和高危程度的披露信息会优先展示,以便进行紧急分类处理。* | ### 威胁情报 — CVE 详情 | ![Threat Intel Detail](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/1c7b7d8493001658.png) | |:--:| | *每个 CVE 条目均可展开查看简明的英文描述、CVSS 基础评分、严重程度分类以及指向国家漏洞数据库的直接链接。* | ## 命令与部署 **安装依赖并在本地运行:** ``` pip install -r requirements.txt streamlit run app.py ``` **使用 Docker 构建并运行:** ``` docker build -t vulnsight . docker run -p 8501:8501 vulnsight ``` **使用 Docker Compose 部署:** ``` docker-compose up --build ``` **访问平台:** ``` http://localhost:8501 ``` **默认凭据:** ``` Username: admin Password: admin123 ``` ## 结论 VulnSight 证明了专业级的安全工具并不需要重量级的框架或复杂的基础设施。通过将自动化的 XSS 扫描器、静态代码分析器、实时 CVE 情报和精美的分析仪表盘结合到一个单一的容器化 Python 应用程序中,该平台以极低的部署成本提供了真正的安全价值。 该项目巩固了 Web 安全(XSS、SQL injection、不安全的反序列化、CSRF)、安全编码实践以及现实世界中漏洞扫描工作流架构的核心概念。模块化的代码库专为扩展而设计——将模拟的 CVE 动态替换为实时的 NVD API、添加 CSRF 或 SQLi 扫描模块,或集成通过 OAuth 进行的身份验证——这些都是顺理成章的下一步计划。 VulnSight 证明了清晰性、设计感和安全性可以在同一个工具中共存。
作为我在 SyntecxHub 网络安全实习的一部分而开发。
标签:CISA项目, CVE威胁情报, Kubernetes, Python, Streamlit, Web漏洞扫描, XSS检测, 全栈应用, 字符串匹配, 安全研究员, 容器化部署, 数据分析仪表盘, 无后门, 暗黑模式, 源代码审计, 网络安全, 自动化漏洞扫描, 访问控制, 请求拦截, 逆向工具, 错误基检测, 隐私保护, 静态代码分析