CryptoDebug/Vulxor
GitHub: CryptoDebug/Vulxor
Vulxor 是一个基于 Python 的模块化 Web 应用程序渗透测试框架,通过可选漏洞扫描模块和多种格式报告帮助安全人员完成授权安全评估。
Stars: 19 | Forks: 0
# Vulxor
Vulxor 是一个基于 Python 的 Web 应用程序安全测试工具包,用于授权评估。它针对目标 URL 运行一组重点检查,收集发现结果,并导出 JSON、TXT 和 HTML 格式的报告。
## 亮点
- 模块化扫描引擎,支持可选检查。
- 共享 HTTP 会话,支持 cookie、标头、代理、基本认证、超时和延迟。
- 针对常见 Web 安全问题的侦察和漏洞导向模块。
- 作用域爬虫,支持表单/链接发现和基于字典的路径发现。
- 共享的自定义 404 检测,用于过滤跨端点检查的后备页面。
- 为已安装的外部工具提供可选的包装器,例如 Nmap、Nikto、WhatWeb、WAFW00F、SQLMap 和 ZAP baseline。
- 以机器可读和人类可读的格式生成报告。
- 简单的模块 API,便于扩展工具包。
## 模块
| 模块 | 用途 |
| --- | --- |
| `recon` | 基本侦察和信息收集 |
| `sqli` | SQL 注入检查 |
| `xss` | 反射型和 DOM XSS 检查 |
| `auth` | 身份验证绕过和默认凭据检查 |
| `idor` | 不安全的直接对象引用检查 |
| `crawl` | 作用域爬取、表单发现和字典路径发现 |
| `tools` | 可选的外部工具集成,除非设置了 `--external-tools`,否则禁用 |
| `upload` | 无限制文件上传检查 |
| `lfi` | 本地和远程文件包含检查 |
| `ssrf` | 服务器端请求伪造检查 |
| `xxe` | XML 外部实体检查 |
| `ssti` | 服务器端模板注入检查 |
| `nosql` | NoSQL 注入检查 |
| `cors` | CORS 错误配置检查 |
| `csrf` | 缺失 CSRF 保护检查 |
| `jwt` | JWT 错误配置检查 |
| `waf` | WAF 检测检查 |
| `ratelimit` | 速率限制弱点检查 |
| `desync` | HTTP 请求走私检查 |
| `race` | 竞态条件检查 |
| `websocket` | WebSocket 安全检查 |
| `graphql` | GraphQL 自省和注入检查 |
| `2fa` | 双因素认证绕过检查 |
| `captcha` | CAPTCHA 相关弱点检查 |
## 项目结构
```
vulxor/
|-- main.py # CLI entry point
|-- requirements.txt # Python dependencies
|-- config/
| `-- settings.py # Runtime settings dataclass
|-- core/
| |-- engine.py # Module orchestration
| |-- logger.py # Console logging helpers
| `-- results.py # Finding and scan result models
|-- modules/
| |-- base.py # Base module class
| |-- recon.py # Reconnaissance module
| |-- sqli.py # SQL injection module
| |-- xss.py # XSS module
| `-- ... # Additional security modules
|-- reports/
| `-- generator.py # JSON, TXT, and HTML report generation
`-- utils/
`-- banner.py # CLI banner
```
## 环境要求
- Python 3.10 或更高版本
- 访问授权目标的网络权限
- 可选:诸如 Burp Suite 或 OWASP ZAP 之类的拦截代理
- `PATH` 上的可选外部工具:`nmap`、`nikto`、`whatweb`、`wafw00f`、`sqlmap` 或 `zap-baseline.py`
## 安装说明
```
git clone https://github.com/CryptoDebug/Vulxor.git
cd Vulxor
python -m venv .venv
```
在 Windows PowerShell 上:
```
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
```
在 macOS/Linux 上:
```
source .venv/bin/activate
pip install -r requirements.txt
```
## 使用说明
运行所有模块:
```
python main.py https://target.example.com
```
运行选定模块:
```
python main.py https://target.example.com --modules recon sqli xss jwt
```
使用 aggressive 配置文件进行更深入、更慢的非破坏性检查:
```
python main.py https://target.example.com --profile aggressive
```
通过代理发送流量:
```
python main.py https://target.example.com --proxy http://127.0.0.1:8080
```
使用 cookie 和自定义标头:
```
python main.py https://target.example.com \
--cookies "session=abc123; role=user" \
--headers "X-API-Key:secret,Accept:application/json"
```
仅生成一种报告格式:
```
python main.py https://target.example.com --report-format html
```
使用自定义字典映射页面并发现路径:
```
python main.py https://target.example.com --modules crawl --wordlist wordlists/common.txt --crawl-depth 2 --max-pages 100
```
运行可选的外部集成:
```
python main.py https://target.example.com --modules tools --external-tools --tools nmap,nikto,whatweb
```
显示内置帮助:
```
python main.py --help
```
## CLI 选项
| 选项 | 描述 |
| --- | --- |
| `-h`, `--help` | 显示内置的 CLI 帮助并退出 |
| `target` | 目标 URL,包括 `http://` 或 `https://` |
| `--profile` | 扫描强度:默认为 `safe`,或使用 `aggressive` 进行更深入的检查 |
| `--modules` | 要运行的模块,或使用 `all` 运行所有模块 |
| `--output` | 生成报告的输出目录 |
| `--threads` | 设置中公开的工作线程数 |
| `--timeout` | 请求超时时间(以秒为单位) |
| `--proxy` | HTTP/HTTPS 代理 URL |
| `--cookies` | 格式为 `name=value; name2=value2` 的 cookie |
| `--headers` | 格式为 `Header:Value,Header2:Value2` 的标头 |
| `--auth` | 格式为 `user:pass` 的基本认证凭据 |
| `--wordlist` | 支持该功能的模块的自定义字典路径 |
| `--crawl-depth` | 作用域内的最大爬取深度 |
| `--max-pages` | 要爬取的最大页面数 |
| `--external-tools` | 允许 `tools` 模块执行已安装的外部命令 |
| `--tools` | 以逗号分隔的外部工具列表 |
| `--tool-timeout` | 每个外部工具命令的超时时间 |
| `--delay` | 请求之间的延迟(以秒为单位) |
| `--no-soft-404-filter` | 禁用自定义 404 和后备页面过滤 |
| `--verbose`, `-v` | 启用详细输出 |
| `--no-banner` | 隐藏启动横幅 |
| `--report-format` | `json`、`txt`、`html` 或 `all` |
## 报告
默认情况下,报告会写入 `reports/` 目录。生成的报告文件会被 Git 有意忽略,因此扫描输出不会被意外提交。报告包含执行摘要、范围、风险评级、建议的后续步骤、带有重现指南的发现结果、非敏感扫描配置摘要,以及元数据(如已爬取页面、表单、发现的路径和外部工具执行状态)。
| 格式 | 用例 |
| --- | --- |
| JSON | 用于自动化和后续处理的机器可读输出 |
| TXT | 用于快速查看的纯文本摘要 |
| HTML | 便于内部共享发现结果的浏览器友好型报告 |
## 扩展 Vulxor
1. 在 `modules/` 中创建一个新文件,例如 `modules/mycheck.py`。
2. 继承自 `BaseModule`。
3. 设置 `NAME` 和 `DESCRIPTION`。
4. 实现 `run(self)`。
5. 在 `core/engine.py` 中的 `MODULE_MAP` 内注册该模块。
6. 将模块名称添加到 `main.py` 中的 CLI `choices` 列表中。
示例:
```
from modules.base import BaseModule
class MycheckModule(BaseModule):
NAME = "mycheck"
DESCRIPTION = "Custom security check"
def run(self):
response = self.get("/")
if response and "sensitive" in response.text.lower():
self.add_finding(
severity="HIGH",
title="Sensitive data exposed",
url=self.url("/"),
detail="The home page appears to expose sensitive data.",
remediation="Restrict sensitive output and review access controls.",
)
```
## 开发说明
- 除非有意将其添加为文档示例,否则请勿将生成的扫描报告提交到代码库中。
- 保持模块精简,专注于单一漏洞类别。
- 为每个发现提供清晰的证据和修复文本。
- 保持漏洞利用检查是非破坏性的:以最小的安全信号证明影响,并记录任何需要手动验证的内容。
- 仅在合法的实验环境或授权目标中进行测试。
## 法律声明
Vulxor 仅供授权安全测试、教育和受控实验室使用。您有责任确保测试的每个目标都在范围内,并且您已获得评估许可。
标签:CISA项目, Python, Web安全, 密码管理, 文档结构分析, 无后门, 蓝队分析, 逆向工具