JRMP 协议
Java 对象实现远程通信的基础技术,Java RMI 的底层通讯协议
用于在客户端和服务器之间传输序列化对象
攻击方式
目标网站:login
本地攻击机:a
云上攻击机:vps ( ip:cingo.cn )
1.vps 上部署工具 yso / java-chains
2. a 上利用 shiro_tool.jar 探寻 login 上是否有 shiro 以及 JRMP 利用链
3.发现有 JRMP ,vps 上进入java-chains,开机JRMP监听(port:13999),以及反序列化利用的命令生成
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()