[应用漏洞]F5 BIG-IP远程代码执行漏洞(CVE-2020-5902)

一、漏洞介绍

F5 BIG-IP 是美国 F5 公司的一款集成了网络流量管理、应用程序安全管理、负载均衡等功能的应用交付平台。Positive Technologies的研究人员Mikhail Klyuchnikov 发现其配置工具Traffic Management User Interface(TMUI)中存在远程代码执行漏洞,CVE编号为CVE-2020-5902。该漏洞CVSSv3评分为10分,攻击者可利用该漏洞创建或删除文件,关闭服务、执行任意的系统命令,最终获得服务器的完全控制权。

二、涉及版本

  • 15.0.0-15.1.0.3
  • 14.1.0-14.1.2.5
  • 13.1.0-13.1.3.3
  • 12.1.0-12.1.5.1
  • 11.6.1-11.6.5.1

三、漏洞复现

1. 漏洞环境搭建

F5 BIG-IP下载地址:https://downloads.f5.com/esd/index.jsp

本次下载文件:BIGIP-14.1.2.3-0.0.5.ALL-vmware.ova

在Mac的VMWare中进行导入

[应用漏洞]F5 BIG-IP远程代码执行漏洞(CVE-2020-5902)_第1张图片

导入文件:

[应用漏洞]F5 BIG-IP远程代码执行漏洞(CVE-2020-5902)_第2张图片

2.漏洞环境登录

默认用户名密码:用户名: root,密码: default

3.漏洞复现

通过ifconfig命令获知漏洞环境ip为:172.31.105.165

[应用漏洞]F5 BIG-IP远程代码执行漏洞(CVE-2020-5902)_第3张图片

F5 BIG-IP登录地址为:https://172.31.105.165/tmui/login.jsp

[应用漏洞]F5 BIG-IP远程代码执行漏洞(CVE-2020-5902)_第4张图片

任意文件读取复现:https://172.31.105.165/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/passwd

[应用漏洞]F5 BIG-IP远程代码执行漏洞(CVE-2020-5902)_第5张图片

任意命令执行复现:

四、漏洞分析

漏洞的原理是我们耳熟能详的解析url差异,该漏洞利用Apache和后台Tomcat对URL的解析方式不同来绕过登录限制, 在未授权的情况下,访问后台JSP模块。

访问后台后,漏洞能够达到任意文件读取和任意命令执行的级别是因为fileRead.jsp和tmshCmd.jsp文件的存在。需注意,这两个文件本身是登录后的合法用户所使用的合法功能。

具体步骤为:

  1. 在URL在第一次被Apache解析时,Apache关注的是URL的前半段:https://[target]/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/passwd

  2. 当Apache在看见前半段是合法URL且是允许被访问的页面时,就把它交给了后面的第二层。Apache在这里完全把URL里面关键的/..;/给忽略了。

  3. 在URL在第二次被解析时,后台的Tomcat会把/..;/理解为,向上返回一层路径。此时,  /login.jsp/ 和 /..;/会抵消掉。Tomcat看到的真正请求从在URL在第二次被解析时,后面的Java(tomcat)会把/..;/理解为,向上返回一层路径。此时,  /login.jsp/ 和 /..;/会抵消掉。Tomcat看到的真正请求从https://[target]/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/passwd变成了:https://[target]/tmui/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/passwd

  4. fileRead.jsp并没有对收到的请求进行身份验证,后台因此直接执行fileRead.jsp, 读取并返回了/etc/passwd文件的内容。

根据以上的思路,其实可以找出别的利用漏洞的URL, 比如:

https://[target]/tmui/tmui/login/legal.html/..;/..;/locallb/workspace/fileRead.jsp?fileName=/etc/passwd

“https://[target]/tmui/tmui/login/legal.html”和之前的“login.jsp”一样,是一个不需要登陆就能访问的页面。但是因为要向上返回两次,需要用两个/..;/来抵消掉 ”/login/legal.html”。

 

五、漏洞修复

临时修复方案, 修复方案的本质是在httpd的配置中添加以下规则:

include '

Redirect 404 /

'

 

 

你可能感兴趣的:(剑在手,天下走)