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 将整个平台打包为容器化、一键部署的应用程序
## 工具与技术










## 项目结构
```
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 安全的输出转义——可直接从仪表盘下载。
## 结果与截图
### 登录 — 安全会话认证
|  |
|:--:|
| *SHA-256 哈希凭据存储与简洁的侧边栏登录表单。会话在标签页导航期间持续存在,并在登出时自动清除。* |
### 扫描器 — 目标配置
|  |
|:--:|
| *扫描模块接受任何 HTTP/HTTPS 目标 URL。内置警告旨在强制要求合乎道德的使用——仅限测试已授权的目标。* |
### 扫描器 — 正在进行主动扫描
|  |
|:--:|
| *引擎会爬取表单、注入 payload 并实时传输结果。每个请求包含 10 秒的超时设置和 SSL 错误恢复机制。* |
### 扫描器 — 漏洞发现
|  |
|:--:|
| *已确认的 Reflected XSS 发现,显示触发的 payload、受影响的 URL 和严重程度徽章。每个表单仅确认一次命中,以防止结果泛滥。* |
### 扫描器 — 导出的 HTML 报告
|  |
|:--:|
| *一份样式精美且完全独立的 HTML 报告,包含严重程度摘要卡片和完整的发现结果表格——可直接用于客户交付或内部文档记录。* |
### 代码分析器 — 源代码输入
|  |
|:--:|
| *粘贴任何源代码——Python、JavaScript 或任何基于文本的语言——引擎会立即根据 12 条安全规则对其进行扫描。* |
### 代码分析器 — 所有发现
|  |
|:--:|
| *所有检测到的问题均附有严重程度徽章、行号和问题类别列出。单个易受攻击的文件可以同时暴露出严重、高、中和低级别的发现。* |
### 代码分析器 — 发现详情
|  |
|:--:|
| *每项发现均可展开以显示确切的代码片段和有针对性的修复建议——没有歧义,无需猜测。* |
### 分析 — 会话仪表盘
|  |
|:--:|
| *四张指标卡片、一个严重程度分布面板、一个发现类型细分图以及一个分页结果表格——提供会话中发现的所有内容的完整全貌。* |
### 威胁情报 — CVE 动态
|  |
|:--:|
| *按 CVSS 评分排序的实时 CVE 条目。严重和高危程度的披露信息会优先展示,以便进行紧急分类处理。* |
### 威胁情报 — CVE 详情
|  |
|:--:|
| *每个 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检测, 全栈应用, 字符串匹配, 安全研究员, 容器化部署, 数据分析仪表盘, 无后门, 暗黑模式, 源代码审计, 网络安全, 自动化漏洞扫描, 访问控制, 请求拦截, 逆向工具, 错误基检测, 隐私保护, 静态代码分析