log4j2低版本jndi漏洞修复及测试

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了log4j2低版本jndi漏洞修复及测试相关的知识,希望对你有一定的参考价值。

参考技术A

参考:

PS:小于2.16还需要检查$ctx:xxx删除

由于低版本(<2.10)的log4j2不支持log4j2.formatMsgNoLookups配置,设置后不会生效。

低版本除了升级版本、修改log4j2的类外,还可以通过简单的修改配置临时解决。

修复方法主要是指定日志不做转义,需要修改log4j2的Layout,即在%m %msg %message后加nolookups

修改前为

修改后为

如果有公网可以申请DNSLOG通过DNSLOG的解析记录验证,如果在内网无法访问公网可以启动rmi服务远程调起计算器【这里选择的是Tomcat的一个,可以根据自己的JDK版本选择】
参考: 《JDK 8u191之后的JNDI注入(RMI)》_公众号shadow sock7-CSDN博客

这里简单写个demo打印用户输入参数:

使用curl构造请求参数利用漏洞访问刚才启动的http服务

请求后可以看到应用日志中参数已经被转成了ELProcessor对象且计算器被运行了

按照修复方法进行修复后,重新运行应用:

重新执行curl,参数被原样打印:

处理日志信息的类:org.apache.logging.log4j.core.pattern.MessagePatternConverter在初始化时会判断nolookups参数:

在处理日志时,会根据noLookups判断是否处理$

2.10以后的版本也大致相同:

这个环境变量在2.15后被废弃了,默认是nolookups.

关于log4j漏洞修复解决方案及源码编译

最近log4j爆出重大漏洞,程序员要赶紧修复了!文末提供已经编译好的jar包。

建议最好修复到log4j-2.15.0-rc2版本,临时解决方案还是存在jndi漏洞。

打开log4j官网https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2

 

 

 发现官方网站给的是源码,没有jar包怎么办,这下在阿里云仓库找了rc2版本结果发现也是不能用的,于是自己就开始编译源码。

一.编译环境:

  windows10

  maven3.2.5(笔者采用此版本,建议大家maven版本不要超过3.6)

  jdk8以及以上

  需要jdk9或者jdk11,我采用jdk11(一定要有,主要是解决log4j-api-java9编译报错问题)。

https://download.oracle.com/otn/java/jdk/11.0.13+10/bdde8881e2e3437baa70044f884d2d67/jdk-11.0.13_windows-x64_bin.zip

二.编辑toolchains.xml文件,注意该文件位置在.m2目录下。

在toolchains.xml添加如下红框中内容,jdkHome修改自己本地的路径。

 

 

<toolchain>
    <type>jdk</type>
    <provides>
      <version>11</version>
      <vendor>sun</vendor>
    </provides>
    <configuration>
      <jdkHome>D:\\jdk\\jdk-11.0.13</jdkHome>
    </configuration>
  </toolchain>

 三.切到log4j-2.15.0-rc2目录下

 四.执行  mvn install -Dmaven.test.skip=true

 

 五.等待编译结果,install成功后依赖就在本地仓库

 

 六.最后分享一下log4j-2.15.0-rc2源码编译后的jar包链接:https://pan.baidu.com/s/1U5kqGZ-RKLSkmbDkOVGsIg,某度网盘分享给大家,提取码请大家在评论区回复。

      你们的赞是我前进的动力。谢谢

 

你们的赞是我前进的动力

以上是关于log4j2低版本jndi漏洞修复及测试的主要内容,如果未能解决你的问题,请参考以下文章

腾讯安全刚刚给出了Log4j2核弹级漏洞线上修复方案!紧急修复

快速修复 Log4j2 远程代码执行漏洞步骤

漏洞复现Apache Log4j2 lookup JNDI 注入漏洞(CVE-2021-44228)

烽火狼烟丨Apache Log4j2远程代码执行漏洞(CVE44832)通告

OPTIONS 漏洞修复

分布式 log4j2 漏洞修复方案