技术社区
安全培训
技术社群
积分商城
先知平台
漏洞库
历史记录
清空历史记录
相关的动态
相关的文章
相关的用户
相关的圈子
相关的话题
注册
登录
深入解析 Getter 方法的安全风险:源点调用与 JDBC 攻击
真爱和自由
历史精选
220浏览 · 2025-03-21 13:52
返回文档
从 getter 到 JDBC 的调用总结
前言
getter 方法也是我们熟悉的老朋友了,因为 source 点调用 getter 的非常非常常见,而且 jdbc 的攻击方法也是很妙,这里对见过的做一个总结
如何触发 getter
如何触发 getter 方法呢?这个就太多了,简单举一些常见的例子
Rome 反序列化
需要依赖
代码例子
这里以常见的 TemplatesImpl 为例子
我们简单调试分析一下
调用栈
关键在于 ToStringBean 类
获取我们的对象后进行进入 toString 方法
循环调用它的 getter 方法
CB 链子
需要
调用栈
关键点在于 compare:163, BeanComparator (org.apache.commons.beanutils)
最后反射调用
Hibernate 反序列化
这个依赖比较少见
漏洞在于这个组件中有一个类
BasicPropertyAccessor
我们看到比如拿我们的 getter 方法为例,看到
getGetter--->createGetter--->getGetterOrNull---> getterMethod
可以看到就是获取全部的 getter 方法
之后触发点在他的静态类的
jackson 原生反序列化
原理参考
https://xz.aliyun.com/t/12509?time__1311=GqGxuCG%3DnDlr%3DiQGkQcoGImO7DgmYoD
主要利用的是 POJONode 的 toString 方法
主要这个代码我们看不到,也没有什么好调试的
fastjson 原生
其实和 jackson 差不多,用的是 json 的 toJSONString 方法,都差不多
JDBC 的利用
MysqlDataSource
加入我们的 mysql 依赖
POC 如下
这里是直接用
https://y4tacker.github.io/2023/04/26/year/2023/4/FastJson%E4%B8%8E%E5%8E%9F%E7%94%9F%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96-%E4%BA%8C/的fastjson的原生改的
首先生成一个 dns 之后的 base64 编码后的数据
然后启动 fakemysql
运行代码
成功
简单的调试分析一下
首先是从 getter 到我们的 getConnection 方法
先是获取我们传入的参数
然后进入重写的 getConnection 方法
可以看见最后调用了 mysqlDriver.connect 触发了我们的 jdbc 的连接
DriverManagerDataSource
需要 com.mchange:mchange-commons-java
POC
这里使用的是 h2 数据库的依赖,因为我们看参数的解析
跟进 createProps 方法
只接收 user 和 password
在这里进行的连接
c3p0-DriverManagerDataSource
需要我们的依赖
不管打什么连接都可以
跟进 getConnection 方法
PGSimpleDataSource
需要依赖
打这个 jdbc 有三种方法
这里使用加载远程的 xml 文件
POC
xml 文件
然后起一个服务
运行就会访问文件,然后加载
调试分析
我们的 url 就是在 getUrl 方法中拼接的
先初始化 URL 拼接,然后再拼接服务器名称和端口号,拼接数据库名称,拼接查询参数,拼接查询参数到 URL
然后最后还是一样
0
人收藏
0
人喜欢
转载
分享
0
条评论
某人
表情
可输入
255
字
评论
发布投稿
热门文章
1
2025ISCC练武区域赛和决赛pwn以及擂台pwn合集
2
通过Elastic EDR看smbexec并进行二次开发Bypass
3
php代码审计篇 - 信呼OA 前台注入分析一
4
D3CTF-d3kshrm(预期&非预期)题解
5
Tomcat解析XML引入的新颖webshell构造方式
近期热点
一周
月份
季度
1
2025ISCC练武区域赛和决赛pwn以及擂台pwn合集
2
通过Elastic EDR看smbexec并进行二次开发Bypass
3
php代码审计篇 - 信呼OA 前台注入分析一
4
D3CTF-d3kshrm(预期&非预期)题解
5
Tomcat解析XML引入的新颖webshell构造方式
暂无相关信息
暂无相关信息
优秀作者
1
T0daySeeker
贡献值:28700
2
一天
贡献值:19800
3
1674701160110592
贡献值:18000
4
1174735059082055
贡献值:15000
5
Yale
贡献值:14000
6
LeeH
贡献值:10000
7
MeteorKai
贡献值:9000
8
姓*户
贡献值:8600
9
Arcueid
贡献值:8000
10
熊猫正正
贡献值:8000
目录
前言
如何触发 getter
Rome 反序列化
CB 链子
Hibernate 反序列化
jackson 原生反序列化
fastjson 原生
JDBC 的利用
MysqlDataSource
DriverManagerDataSource
c3p0-DriverManagerDataSource
PGSimpleDataSource
转载
标题
作者:
你好
http://www.a.com/asdsabdas
文章
转载
自
复制到剪贴板