log4j流量分析

原理

由于日志在打印时当遇到${后,以:号作为分割,将表达式内容分割成两部分,前面一部分prefix,后面部分作为key,然后通过prefix去找对应的lookup,通过对应的lookup实例调用lookup方法,最后将key作为参数带入执行,引发远程代码执行漏洞

简单来说log4j2 在日志输出中,一旦在log字符串中检测到${},就会调用lookup查询尝试解析其中的字符串,若字符串包含JNDI则会解析远程加载类,实现RCE。

关键字

${jndi

rmi

LDAP

shell执行字段

防御

用户输入的参数中出现攻击关键字(过滤用户输入)
禁止1ookup下载远程文件(命名应用)
禁止1og4j的应用去连接外网
禁止10g4j使用1ookup方法

一个仍在爬山的人