log4j漏洞复现(cve-2021-44228)-爱代码爱编程
简介
Log4j 是一款开源 Java 日志记录工具。Log4j 2 是对 Log4j 的重大升级,此次漏洞的出现,正是由用于 Log4j 2 提供的 lookup 功能造成的,该功能允许开发者通过一些协议去读取相应环境中的配置。但在实现的过程中,并未对输入进行严格的判断,从而造成漏洞的发生。
影响范围
Apache Log4j 2.x <= 2.14.1 版本均回会受到影响。
代码审计
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.14.1</version>
</dependency>
复现
值得注意的是,springboot 项目中, spring-boot-starter 中日志启动器 spring-boot-starter-logging 使用的是 log4j-api,而 log4j-api 并不在此次漏洞的范围内,所以需要手动排除掉 spring-boot-starter 中 spring-boot-starter-logging 并加上以上依赖。
原理
1、攻击则发送带有恶意Ldap内容的字符串,让服务通过log4j2打印
2、log4j2解析到ldap内容,会调用底层Java去执行Ldap的lookup操作。
3、Java底层请求Ldap服务器(恶意服务