hutool组件下dynamic proxy和JDBC的部分可用链

前言

本文中主要集中在hutool这一常用组件中,在动态代理以及JDBC attack这两个角度在利用过程中可能存在的一部分链子

动态代理

hutool介绍页面中涉及了hutool对JDK动态代理的封装支持

https://github.com/dromara/hutool

查看在组件hutool下的InvocationHandler实现

其中存在有四个类对其进行了实现,具体如下:

image-20250212151928133.png

分别查看这四个类的invoke方法实现,存在有以下利用的可能

JdkInterceptor

image-20250212152052428.png

在其invoke方法的实现中,其能够反射调用代理类的对应方法,这个类和在spring-aop中的一个比较常用的代理类JdkDynamicAopProxy的作用相同,均能够反射调用代理对象的方法,下图为JdkDynamicAopProxy#invoke的实现

image-20250212152523291.png

  1. 这类代理类在JSON1链中也存在身影

  2. 同样在https://mp.weixin.qq.com/s/gl8lCAZq-8lMsMZ3_uWL2Q文中绕过高版本的getter触发问题是,也采用了代理类的方式进行绕过,类似的,这里我们也可以利用JdkInterceptor类进行绕过
    image-20250212154523985.png
    可将其换成JdkInterceptor类

  3. 还有就是在处理jackson getter触发不稳定是,通过代理目标对象进行更稳定的getter触发
    image-20250212154713693.png
    同样可以替换成JdkInterceptor类进行处理

  4. 等等类似上面的场景,需要代理一个类进行类方法执行都可以使用JdkInterceptor作为一部分进行利用

JDBC

其同样存在有数据库相关支持,全局搜索getDataSource调用

在hutool组件中存在有15个类存在getDataSource方法的实现

# 网络安全 # web安全 # 漏洞分析 # 网络安全技术
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
已在FreeBuf发表 0 篇文章
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
原始链接: https://www.freebuf.com/articles/web/424942.html
侵权请联系站方: [email protected]

相关推荐

换一批