导致Log4j Rce的JNDI注入

admin 2025年1月3日14:38:45评论18 views字数 1248阅读4分9秒阅读模式
  • 前言

    记前奏,复现分析了史诗级漏洞Log4j Rce漏洞,并且搞明白了调用链,发现后面是利用的JNDI注入漏洞,问了其他师傅,其他好多漏洞都是因为这个漏洞。为了总结完美一点,一定要补上本文,熟悉完所有的调用链,感觉又自信了!!

导致Log4j Rce的JNDI注入

  • 漏洞分析

    建议食用完上篇的漏洞分析后再阅读,一步步跟踪后发现lookup可以调用的类还是比较多的,接下去应该是接受到解析内容后该怎么进行的,翻阅资料后后面指的是jndi注入的过程,会把解析到的内容丢进去ldapURLContext中。

导致Log4j Rce的JNDI注入

    随后对lookup再进行跟踪

导致Log4j Rce的JNDI注入

    getRootURLContext,获取RMI注册中心相关数据;getResolvedObj获取注册中心对象;接着跟随lookup

导致Log4j Rce的JNDI注入

    跟随后,又到了多选题的时候了,发现是会去执行RegistryContext这个类

导致Log4j Rce的JNDI注入

    此时的这个var 1 指的就是我们后接的路径 a,跟进decodeObject,这边肯定是不为空的,跟进就好了,这儿registry.lookup是为了获取客户端ip地址

导致Log4j Rce的JNDI注入

    进入到decodeObject中,发现第二个语句,有个trustURLCodebase,这儿就很关键了,jdk到某个版本之上,这个为true,否则为false,JDK 6u141、7u131、8u121之后默认为false,然后就进入执行getObjectInstance

导致Log4j Rce的JNDI注入

    然后会去ObjectFactory实例化一个对象工厂,ObjectFactoryBuilder 实例化一个对象工厂生成器

导致Log4j Rce的JNDI注入

    再往下走,实例化Reference

    className:表示远程加载时所使用的类名

    classFactory:加载class中需要实例类的方法

    classFactoryLocation:指定远程加载类的地址

    此时,类名、地址都包含在ref中,类的方法在f中

导致Log4j Rce的JNDI注入

    进入到getObjectFactoryFromReference中后会去通过codebase获取ip地址,loadClass执行这个类

导致Log4j Rce的JNDI注入

至此,大致的JNDI注入完成了 

  • 微信群介绍

    本公众号只用来记录一些自己在安全道路上所学所想所看,更多的是技术的互相交流,工具及部分不方便内容均放在知识星球中,知识星球加入渠道,加入微信群后发送"知识星球",互相吹水,互相学习,互相进步!!

导致Log4j Rce的JNDI注入

  • 总结

    趁热打铁,取决于jndi中的trustURLCodebase是否为true,默认为true的版本就遭了,但是问题也不大,升级就可以解决这个问题,据说好多漏洞都有jndi的限制,与学习Java开发的师傅了解后,这是利用了Java的反射机制造成的,上度娘上搜索后,发现Java反射机制就是可通过类的名进行动态加载实例化,在运行过程中,都可以调用它的任意一个方法和属性~ 希望师傅们,互相学习,不足之处还多多指点!! 

导致Log4j Rce的JNDI注入

原文始发于微信公众号(Undoubted Security):导致Log4j Rce的JNDI注入

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年1月3日14:38:45
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   导致Log4j Rce的JNDI注入https://cn-sec.com/archives/1834189.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息