前言
上篇分析了jndi+ldap的利用,这两天新爆出来的漏洞log4j2中,结合恶意payload可执行远程恶意代码
影响范围:Apache Log4j 2.x < 2.15.0-rc2,而且利用难度低,利用要求少
紧急缓解措施(最好升级最新版本):
(1) 修改jvm参数 -Dlog4j2.formatMsgNoLookups=true
(2) 修改配置log4j2.formatMsgNoLookups=True
(3) 将系统环境变量 FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS 设置为 true
分析
整个漏洞中所调用的函数为:
logMessage ----> logMessageSafely ----> logMessageTrackRecursion ----> tryLogMessage ----> log
----> DefaultReliabilityStrategy.log ----> loggerConfig.log ----> processLogEvent ----> callAppenders
----> tryCallAppender ----> append ----> tryAppend ----> directEncodeEvent ----> encode ----> toText ---->
toSerializable ---->format----> PatternFormatter.format
漏洞的成因是:org.apache.logging.log4j.core.pattern.MessagePatternConverter