JRMP 协议

Java 对象实现远程通信的基础技术,Java RMI 的底层通讯协议

用于在客户端和服务器之间传输序列化对象

攻击方式

目标网站:login

本地攻击机:a

云上攻击机:vps ( ip:cingo.cn )

  1. 1.vps 上部署工具 yso / java-chains

  2. 2. a 上利用 shiro_tool.jar 探寻 login 上是否有 shiro 以及 JRMP 利用链

  3. 3.发现有 JRMP ,vps 上进入java-chains,开机JRMP监听(port:13999),以及反序列化利用的命令生成

  4. 4.a 上输入 cingo:13999 发现弹出计算器,成功

CC1链

文章:https://mp.weixin.qq.com/s/J_YeNkLN6KYTCVDYFh1dvQ

跟踪链条需要先找到能实现RCE 的类 从尾往头走

ObjectInputStream.readObject()

->AnnotationInvocationHandler.readObject())

->MapEntry#setValue

->TransformedMap#checkSetValue

->ChainedTransformer.transform()

->ConstantTransformer.transform()

->InvokerTransformer.transform()

Runtime.class

getRuntime().exec("calc");

Class.getMethod()

Runtime.getRuntime()

Runtime.exec()