urvesh-shekhawat/VulnEye

GitHub: urvesh-shekhawat/VulnEye

基于 Flask 构建的 serverless Web 漏洞扫描器,对公共域名进行非侵入式多维度安全评估并生成企业级 PDF 报告。

Stars: 0 | Forks: 0

# 🛡️ VulnEye — 企业级 Web 漏洞扫描器 [![Vercel Deployment](https://img.shields.io/badge/Deployed%20on-Vercel-black?logo=vercel&logoColor=white)](https://vercel.com) [![Python Version](https://img.shields.io/badge/Python-3.9%2B-blue?logo=python&logoColor=white)](https://python.org) [![Framework](https://img.shields.io/badge/Framework-Flask%203.x-red?logo=flask&logoColor=white)](https://flask.palletsprojects.com/) [![OAuth 2.0](https://img.shields.io/badge/Auth-Google%20OAuth-4285F4?logo=google&logoColor=white)](https://console.cloud.google.com/) VulnEye 是一款高级的现代 Web 漏洞扫描器,旨在对公共 Web 域名进行快速、非侵入性的安全评估。它完全针对 Vercel 上的 serverless 部署进行了优化,具有时尚的毛玻璃深色/浅色界面、Google OAuth 2.0 身份验证以及企业级的动态 PDF 报告生成引擎。 ## 📋 目录 - [概述](#-overview) - [核心功能](#-core-features) - [技术栈](#-technology-stack) - [项目结构](#-project-structure) - [本地安装与配置](#-local-installation--setup) - [Google Cloud Console 配置](#-google-cloud-console-setup) - [Vercel 部署 (CI/CD)](#-vercel-deployment-cicd) - [贡献](#-contributing) - [免责声明与许可证](#-disclaimer--license) ## 🎯 概述 VulnEye 协助开发人员和安全专业人员评估面向公众的 Web 应用程序的基线安全状况。它不使用具有攻击性的侵入式 payload,而是执行高速安全审计,分析传输层加密、HTTP header 配置、公共端口暴露以及通用的管理目录结构。 ## ✨ 核心功能 ### 🔑 1. 安全的 Google OAuth 2.0 登录 * 使用与 Google 的 OpenID Connect 发现服务通信的安全 `Authlib` 引擎进行集成。 * 专门设计的、符合官方品牌规范的 Google 登录界面。 * 安全的本地身份验证回退机制,如果尚未配置环境凭证,将显示警告横幅。 ### 🔍 2. 多维度安全扫描器 * **SSL/TLS 安全审计:** 评估证书可用性、安全传输和安全重定向。 * **HTTP Headers 扫描器:** 分析响应头以获取关键配置,例如 HSTS (`Strict-Transport-Security`)、CSP (`Content-Security-Policy`)、`X-Frame-Options` 和 `X-Content-Type-Options`。 * **端口扫描器与服务映射:** 安全审计常见数据库、系统和 Web 服务端口(例如 20、21、22、23、25、53、80、110、443、1433、3306、5432、8080)的检查清单,以发现意外暴露。 * **目录暴力破解:** 审计目标域名中可访问的通用管理或系统文件夹(例如 `/admin`、`/login`、`/config`、`/test`)。 * **表单审计器:** 自动提取交互式 HTML 表单定义,捕获操作、方法和输入字段。 ### 📄 3. 企业级 PDF 安全报告 * 通过 `ReportLab` 生成专业、高度风格化的安全评估档案。 * 具有自定义品牌横幅条、双层 header、元数据网格(时间戳和扫描参数)以及斑马纹指标表。 * **智能文本换行:** 在段落块内换行极长的目标 URL,以防止文本剪裁和页面溢出。 * **严重性胶囊横幅:** 代表聚合风险(低 = 薄荷绿,中 = 琥珀金,高 = 深红)的高对比度颜色编码指示器。 ### ⚙️ 4. Serverless 安全的自愈数据库 * 配置为在 Vercel 的只读 serverless 函数上运行。 * 动态检测 serverless 环境,并将 SQLite 写入重定向到临时的 `/tmp/scans.db` 目录。 * 在 serverless 容器冷启动时,自动重新创建目录并即时编译 SQL schema。 ### 🎨 5. 奢华的毛玻璃效果 UI/UX * 动态背景,具有使用平滑的 CSS keyframes 动画化的浮动**环境极光**。 * 半透明卡片(`backdrop-filter: blur(24px)`),采用发光的聚焦环、边框脉冲动画和交互式悬停过渡效果进行样式设置。 * 时尚的深色/浅色切换可无缝过渡,动态更新布局和组件。 * 自动解析的导航栏个人资料徽章,显示您当前活跃的 **Google 头像**和全名! ## 🛠️ 技术栈 | 技术 | 用途 | 实现细节 | | :--- | :--- | :--- | | **Python 3.12+** | 后端逻辑与审计 | Flask 3.x, Authlib, requests, beautifulsoup4, reportlab, python-dotenv | | **SQLite 3** | 临时/本地日志记录 | 自愈目录与表初始化,serverless 兼容 | | **HTML5 & CSS3** | 高级用户界面 | 毛玻璃效果,量身定制的 HSL 变量,keyframe 动画,Outfit 字体 | | **ES6 JavaScript** | 前端交互 | LocalStorage 支持的状态同步,动态暗模式渲染 | ## 📂 项目结构 项目已进行重构,以符合云部署主机所期望的现代 serverless 布局: ``` VulnEye/ ├── api/ # Main Serverless Source Folder │ ├── index.py # Flask Application Entry Point (Vercel Entry) │ ├── static/ # Static Assets │ │ └── style.css # Cohesive Luxury Global Stylesheet │ └── templates/ # Jinja2 HTML Templates (Glassmorphism Designs) │ ├── history.html # Scans Logs Dashboard & Tables │ ├── index.html # Futuristic Scanner Launchpad │ ├── login.html # Premium Google Login UI │ └── result.html # Vulnerabilities Results Dashboard ├── .env.example # Secrets Template for Local Configurations ├── .gitignore # Git Exclude Lists (UTF-8 Encoded) ├── app.py # Lightweight Local Runner Stub ├── database.py # SQLite Dynamic Database Manager (Serverless /tmp fallbacks) ├── requirements.txt # Python Dependencies ├── scanner.py # Security Scan Logic & Algorithms └── vercel.json # Vercel Serverless Function Routing Configuration ``` ## 🚀 本地安装与配置 按照以下步骤在您的开发环境中本地运行 VulnEye: ### 第一步:克隆并导航 ``` git clone https://github.com/urvesh-shekhawat/VulnEye.git cd VulnEye ``` ### 第二步:建立虚拟环境并安装依赖项 ``` python -m venv venv # 在 Windows 上: venv\Scripts\activate # 在 macOS/Linux 上: source venv/bin/activate pip install -r requirements.txt ``` ### 第三步:配置本地环境变量 1. 复制模板配置文件: cp .env.example .env 2. 打开 `.env` 并填写您真实的 Google Cloud Console 凭证(请参阅下方的 Google 凭证配置部分): SECRET_KEY="A_Complex_Random_String_For_Signing_Sessions" GOOGLE_CLIENT_ID="123456789-abcdefg.apps.googleusercontent.com" GOOGLE_CLIENT_SECRET="GOCSPX-abc123yourclientsecret" ### 第四步:运行开发服务器 ``` python app.py ``` 在浏览器中打开 **`http://localhost:5000`** 即可开始审计目标! ## 🔐 Google Cloud Console 配置 要配置 Google OAuth 2.0 凭证: 1. 前往 **[Google Cloud Console 凭证页面](https://console.cloud.google.com/apis/credentials)**。 2. 选择或创建一个项目。 3. 配置 **OAuth 同意屏幕**(用户类型:外部)并添加您应用程序的基本信息。 4. 前往 **凭证**,点击 **创建凭证** -> **OAuth Client ID**。 5. 选择 **Web Application** 作为应用程序类型。 6. 添加以下参数: * **已授权的 JavaScript 来源:** * 本地开发:`http://localhost:5000` * 生产环境:`https://your-app.vercel.app`(您的 Vercel URL) * **已授权的重定向 URI:** * 本地开发:`http://localhost:5000/authorize` * 生产环境:`https://your-app.vercel.app/authorize` 7. 点击 **创建** 并将您的 **Client ID** 和 **Client Secret** 复制到您的 `.env` 文件中(本地)或 Vercel 控制台中(生产环境)。 ## 🌌 Vercel 部署 (CI/CD) 由于 VulnEye 在 `vercel.json` 中配置了现代 serverless 重写规则,其实时部署只需不到一分钟: 1. 将您最新的代码更改推送到您的 GitHub/GitLab 仓库。 2. 登录 **[Vercel 控制台](https://vercel.com)**。 3. 点击 **添加新项** -> **项目**,找到您的 **`VulnEye`** 仓库,然后点击 **导入**。 4. 在项目设置屏幕中: * 保持 **框架预设** 为 `Other`(Vercel 会自动检测 `vercel.json` 并构建 `@vercel/python` 运行时)。 * 保持 **根目录** 为 `./`。 5. 在 **环境变量** 标签页下,添加您的生产环境变量: * `SECRET_KEY` = `[您的自定义随机会话签名密钥]` * `GOOGLE_CLIENT_ID` = `[您的 Google Client ID]` * `GOOGLE_CLIENT_SECRET` = `[您的 Google Client Secret]` 6. 点击 **部署**。 Vercel 将编译您的代码,打包 `api/` 目录(包含模板、样式和模块),配置安全的 HTTPS URL,并将您的应用程序在线托管! ## 📜 免责声明与许可证 ### ⚠️ 免责声明 此工具仅供授权的安全测试使用。未经授权访问计算机系统是违法行为。在扫描任何网站或应用程序之前,请务必确保您已获得明确许可。对于任何滥用此工具的行为,作者不承担任何责任。 ### 许可证 该项目基于 **MIT License** 授权 - 有关详细信息,请参阅 [LICENSE](LICENSE) 文件。 **祝您扫描愉快! 🔒**
标签:Flask, OAuth 2.0, OSV, Vercel, Web漏洞扫描, 反取证, 后端开发, 安全评估, 插件系统, 数据可视化, 逆向工具