如果觉得该文章有帮助的,麻烦师傅们可以搜索下微信公众号:良月安全。点个关注,感谢师傅们的支持。
免责声明
本号所发布的所有内容,包括但不限于信息、工具、项目以及文章,均旨在提供学习与研究之用。所有工具安全性自测。如因此产生的一切不良后果与文章作者和本公众号无关。如有涉及公司与个人敏感信息,侵权烦请告知,我们会立即删除并致歉。
前言
jeecg-boot之前有披露出几个未授权的漏洞,两个接口存在RCE,分别是/jmreport/queryFieldBySql和/jmreport/testConnection,其中利用的较多的应该是/jmreport/queryFieldBySql接口的Freemarker模板注入漏洞。
实际环境中,发现Freemarker模板注入漏洞利用的时候有些环境下会有些问题,比如:
1、插入freemarker payload的时候,会自动过滤点号,无法利用。
2、还有解析失败的情况,无法利用。
既然Freemarker模板注入漏洞难以利用,/jmreport/testConnection接口的jdbc连接漏洞是否可以利用呢?网上流传的poc一般都是利用h2依赖,但是实际环境中经常出现没有h2依赖的情况。
jdbc mysql反序列化也经常因为mysql版本过高无法使用。
这里部分版本可以利用jdbc pgsql的漏洞来rce,实际环境也多次利用成功。
pgsql jdbc利用
漏洞影响版本:
-
< 42.2.25
-
42.3.0 < x <=42.3.2
这里本地搭的测试环境刚好是漏洞版本42.2.24。
该漏洞源于pgsql jdbc连接属性提供的类名实例化插件实例,驱动程序在实例化类之前并不验证类是否实现了预期的接口从而导致rce,我们可以利用org.springframework.context.support.ClassPathXmlApplicationContext和org.springframework.context.support.FileSystemXmlApplicationContext,这2个类在实例化时,会加载外部恶意xml文件导致rce。
内存马注入
更改base64的字节码与注入的类的类名,即可自定义注入的内存马。
请求包和xml内容加入星球或者关注微信公众号后台回复“20240918”获取。
参考
奇安信攻防社区-PostgreSQL JDBC Driver RCE(CVE-2022-21724)与任意文件写入漏洞利用与分析
GitHub - Hutt0n0/ActiveMqRCE: 用java实现构造openwire协议,利用activeMQ < 5.18.3 RCE 回显利用 内存马注入