安全矩阵

 找回密码
 立即注册
搜索
查看: 1036|回复: 0

JeecgBoot SSTI以及JDBC RCE 复现

[复制链接]

417

主题

417

帖子

2391

积分

金牌会员

Rank: 6Rank: 6

积分
2391
发表于 2023-8-16 10:19:00 | 显示全部楼层 |阅读模式
本帖最后由 ivi 于 2023-8-16 10:19 编辑

今天接到消息,JeecgBoot有 SSTI 和 JDBC RCE 漏洞,马上来分析复现一下

文笔不好,没去详细分析,随手一写

情报

两个接口存在 RCE,分别是 /jmreport/queryFieldBySql 和 /jmreport/testConnection


SSTI

根据线索:

直接用 JADX 找到对应代码


很直接嘛,直接传入 sql,那直接构造请求先试试:

居然还有黑名单?

输入个简单的试试:

这里起码还有个 SQL 注入漏洞


线索中说明了用 Freemarker 处理了传入的 sql 语句,那直接打 SSTI 试试


JDBC RCE

漏洞利用有个前提,必须有 H2 驱动的依赖

用 JADX 在反编译的代码中搜索 testConnection,找到对应的接口

  1. org.jeecg.modules.jmreport.desreport.a.a#a(org.jeecg.modules.jmreport.dyndb.vo.JmreportDynamicDataSourceVo)
复制代码

在 IDEA 中查看

代码被压的爹妈都不认识了

根据入参 @RequestBody JmreportDynamicDataSourceVo var1 知道,传入一个 JmreportDynamicDataSourceVo 对象的 JSON

JmreportDynamicDataSourceVo

里面能自定义 dbUrl,那么就直接构造参数,试试看

dbUrl 用前段时间的 metabase poc 改改

很简单就弹计算器了

后记

1、Freemarker 可以进一步注入内存马

2、H2 RCE 其实也可以注入内存马

3、jeecgboot 如没有特地引入 H2 驱动依赖,其实也能用另一种方式成功 RCE,暂时不放出来



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-28 16:27 , Processed in 0.014844 second(s), 19 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表