文章来源|MS08067 WEB攻防知识星球
本文作者:爱吃芝士的小葵(Ms08067实验室追洞小组成员)
漏洞复现分析 认准追洞小组
目录
1、前言+靶场搭建
2、漏洞复现
3、漏洞分析
4、漏洞修复
5、心得
前言+靶场搭建
很多时候我们获得密码之后进入后台管理的界面,有些上传的漏洞或者sql注入无法getshell,但是如果发现连接mysql服务的数据包中可以传参,那么我们就可以尝试控制连接mysql服务器,反序列化代码来得到shell。所以该漏洞的关键只需要能够控制客户端的jdbc连接,在连接阶段就可以进行处发反序列化。这篇文章也不深入理解mysql的协议。使用idea maven项目创建,在pom中导入jdbc的坐标。(5版本的在5.1.40以下,8版本的在8.0.20以下)导入之后在右边点击maven图标导入。
需要自行根据版本选择JDBC连接串,最后有基于各版本Connector连接串的总结。
漏洞复现
一、 准备伪造的mysql服务
MySQL服务器使用:
https://github.com/fnmsd/MySQL_Fake_Server
二、 可控的mysql连接的字符串
可以去找到"靶场"。这里当然以本地靶场搭建。
漏洞分析
detectCustomCollations触发方式
测试环境中使用mysql-connector-java 5.1.32+java 1.8.221:
我们在 com.mysql.jdbc#build