文章总结: 本文分析WeblogicCVE-2020-14882与CVE-2020-14883漏洞利用链,影响多个版本。攻击者可通过构造特定URL未授权访问后台并远程执行命令。文章详细分析了漏洞原理、POC触发过程及调用栈,并给出代码级分析,建议使用vulhub环境复现,并关注官方补丁更新。
综合评分: 85
文章分类: 漏洞分析,WEB安全,红队
Weblogic CVE-2020-14882,CVE-2020-14883漏洞分析
原创
谛宸
谛宸
谛宸安全
2026年9月10日 09:00
广东
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
使用的是vulhub/weblogic/CVE-2020-14882漏洞环境,版本为Weblogic 12.2.1.3
该漏洞影响范围包含了Oracle Weblogic Server10.3.6.0.0、12.1.3.0.0、12.2.1.3.0、12.2.1.4.0、14.1.1.0.0这几个版本
1. 漏洞简介
CVE-2020-14882 允许未授权的用户绕过管理控制台的权限验证访问后台,CVE-2020-14883 允许后台任意用户通过 HTTP 协议执行任意命令 使用这两个漏洞组成的利用链,可通过一个 GET 请求在远程 Weblogic 服务器上以未授权的任意用户身份执行命令
2. CVE-2020-14882
直接访问以下url即可未授权访问后台管理页面
http://192.168.154.128:7001/console/css/%252e%252e%252fconsole.portal
以下是CVE-2020-14883的分析
3. 执行poc,通过日志分析调用栈
直接访问
http://192.168.154.128:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.tangosol.coherence.mvel2.sh.ShellSession(%22java.lang.Runtime.getRuntime().exec(%27touch%20/tmp/success1%27);%22)
进入容器
sudo docker exec -it -u root bff70d5c94d3 /bin/bash
查看日志
tail -f /u01/oracle/user_projects/domains/base_domain/servers/AdminServer/logs/AdminServer.log
信息显示异常直接发生在getHandle()方法内,说明这是实例化 Handle 对象的核心逻辑,直接在该方法处打断点
4. 分析代码
再执行一次poc,找到调用getHandle()的地方
可以看到上一步是com.bea.console.utils.BreadcrumbBacking.init(),进入该方法 简单分析可以发现这里就是weblogic解析传入url的地方,在第67行有一个if判断,若为true就能调用 HandleFactory.getHandle(),所以在第66行打一个断点,看看handleStr是什么
重新执行poc,跟进findFirstHandle()方法 209行提取出url中携带的参数
211,212,213行通过while循环逐个提取出参数和参数值
循环第三遍来到227行,当url中存在handle参数,就将参数值赋值给handle变量并返回
所以handleStr为url上handle参数的参数值,即com.tangosol.coherence.mvel2.sh.ShellSession(“java.lang.Runtime.getRuntime().exec(‘touch%20/tmp/success1’);”)
通过if判断后调用HandleFactory.getHandle()处理handleStr,跟进
这4行就是在调用com.tangosol.coherence.mvel2.sh.ShellSession 这个类的构造器来实例化一个ShellSession对象
分析ShellSession类的构造器
可以看到在实例化的过程中调用了exec()方法,说明会将传入的参数当作命令来执行 在容器内也能看到/tmp/success1文件被创建,成功执行命令
这个方法只能在 Weblogic 12.2.1 以上版本用,因为 10.3.6 并不存在 com.tangosol.coherence.mvel2.sh.ShellSession 类,低版本可以使用com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext ,会更复杂,具体利用方式可以看https://github.com/vulhub/vulhub/blob/master/weblogic/CVE-2020-14882/README.zh-cn.md
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:谛宸安全 谛宸
谛宸《Weblogic CVE-2020-14882,CVE-2020-14883漏洞分析》