0x01 漏洞描述
0x02 危害等级
0x03 漏洞复现
0x04 影响版本
0x05 修复建议
1、厂商已发布升级修复漏洞,用户请尽快更新至安全版本:log4j-2.15.0-rc1
下载链接:https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc1
2、升级已知受影响的应用及组件,如srping-boot-strater-log4j2/Apache Solr/Apache Flink/Apache Druid
与此同时,请做好资产自查以及预防工作,以免遭受黑客攻击。
0x06 审计分析
详细代码如下
从上面代码中可以看到,不管什么级别的日志下都可以出发lookup。那么问题来了?为什么有些级别的日志下却不可以触发呢?那是因为你的日志级别设置的太高,导致log4j根本就没打印日志内容。
代码
org.apache.logging.log4j.core.pattern.MessagePatternConverter#format
中,代码会按字符检测每条日志,如果一旦发现某条日志中包含$ {
,就会触发替换机制,也就是将表达式内的内容替换成真实的内容,其中config.getStrSubstitutor().replace(event, value)
执行下一步替换操作,其中关键代码如图
org.apache.logging.log4j.core.lookup.StrSubstitutor#substitute(org.apache.logging.log4j.core.LogEvent, java.lang.StringBuilder, int, int, java.util.List<java.lang.String>)
其实就是一个简单的字符串提取,然后找到lookup的内容并替换。函数的文档如下
学过数据结构的都会,不详细介绍了。在函数的这个地方,执行变量解析,如图
在此执行查找,根据变量的协议,关键代码如下
剩下就是一个简单的字符串查找函数,从字符串中提取类似于url的结构去解析,
值得注意的是,log4j2支持很多协议,例如通过ldap查找变量,通过docker查找变量,详细参考这里https://www.docs4dev.com/docs/zh/log4j2/2.x/all/manual-lookups.html
由以上类层次结构图可以看出
1、log4j2提供不下十种获取所运行环境配置信息的方式,基本能满足实际运行环境中获取各类配置信息的需求。
2、我们在自定义lookup时,可以根据自身需求自由选择继承自StrLookup,AbstractLookup,AbstractConfigurationAwareLookup等等来简化我们的代码。以上默认提供的各类lookup,其取值来源看官可以通过下面给出的引用链接中的第二个进行详细的瞭解,我就不再在这里赘述一遍了。
接下来我们来探索一些稍微深入的内容,以及一些细节性的内容。
1、作爲lookup对外门面的Interpolator是通过 log4j2中负责解析节点的PropertiesPlugin类来併入执行流程中的。具体源码可以参见PropertiesPlugin.configureSubstitutor方法。其中注意的是,我们在中提供的属性是以default的优先级提供给外界的。
2、作爲lookup对外门面的Interpolator,在其构造函数中载入了所有category值爲StrLookup.CATEGORY的plugin【即包括log4j2内置的(“org.apache.logging.log4j.core” package下的),也包括用户自定义的(log4j2.xml文件中的 Configuration.packages 属性值指示的package下的)】。
3、Interpolator可以单独使用,但某些值可能取不到。
4、获取MDC中的内容,log4j2提供了两种方式:$${ctx:user}或%X{user}。
0x07 POC+EXP获取
Log4j
-
专注于信息安全方面分享,非营利性组织,不接商业广告
-
关注不迷路,点赞!关注!转发!评论!!
-
要投稿的后台留言即可,会第一时间回复,谢谢!
相关推荐: Category-719: OWASP Top Ten 2007 Category A8 - Insecure Cryptographic Storage
Category-719: OWASP Top Ten 2007 Category A8 - Insecure Cryptographic Storage ID: 719 Status: Obsolete Summary Weaknesses in this …
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论