freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

Text4Shell漏洞技术分析,交易所等机构需注意
numencyber 2022-10-19 20:02:09 98834
所属地 海外

CVE编号

CVE-2022-42889

描述

Apache Commons Text支持执行变量插值,标准格式是“${prefix:name}”,其中“prefix”用于定位org.apache.commons.text.lookup.StringLookup的实例。从1.5版到1.9版,默认lookup实例集如:script使用JVM 脚本执行引擎javax.script执行表达式、 dns用于解析dns记录、url用于发起任意http请求。

如果使用了不受信任的配置值,则受影响的应用程序容易受到远程代码执行,该漏洞NVD评分为9.8。

Apache Commons Text作为Java语言的基础组件,其安全性需要各Web3项目方提高重视,及时关注各种Web3基础架构的安全漏洞并及时打好补丁,以避免潜在的安全风险和数字资产损失。我们将及时挖掘,追踪各种web3上的安全风险,以及提供领先的安全解决方案,确保web3世界链上,链下安全无虞。

受影响版本

>=1.5 <=1.9

分析

阅读官方1.9文档时,看到以下内容

通过script插值执行javascript运算,得到结果:

根据漏洞描述script使用 JVM 脚本执行引擎(javax.script),猜测StringSubstitutor.replace方法处理script插值时可能执行任意java代码。

构造payload:

${Script:javascript:java.lang.Runtime.getRuntime().exec(\"open -a calculator\");}"

分析入口StringSubstitutor.replace,调用了substitute方法处理传入的字符串

进行处理${}字符,取出再进行解析,跟入resolveVariable方法

继续跟进StringLookup对象的lookup方法

在stringLookupMap初始化了其他插值,插值对应不同lookup实例

当前传入是script,lookup实例对应ScriptStringLookup类的lookup方法

在该方法中,最终调用scriptEngine.eval触发漏洞。

调用栈

图片

修复

在1.10.0版本中stringLookupMap集合初始化时不再有script,lookup为null时,既没有找到对应实例。

其他插值的利用

1.任意文件读取

${file:UTF-8:/etc/passwd}

此时为lookup实例为FileStringLookup类

lookup方法读取文件返回

结果

2. DNS探测

${dns:127.0.0.1|test.xxx.xxx}

用于无损检测

3. HTTP 请求

可用于ssrf探测端口

${url:UTF-8:http://127.0.0.1:2121}

1666184085_634ff39506565ff322c29.png!small?1666184086554

总结

该漏洞payload看起来类似于log4shell,很容易被攻击者利用,有些人已经开始将其称为“Text4Shell”或“Act4Shell”。

建议各Web3项目方提高重视,及时升级到 Apache Commons Text 1.10.0,默认情况下禁用有问题的插值器,以避免潜在的安全风险和数字资产损失。如有任何疑问或技术交流,欢迎联系我们 operation@numencyber.com。


Numen 导航

Numen 官网
https://numencyber.com/ 
GitHub
https://github.com/NumenCyber
Twitter
https://twitter.com/@numencyber
Medium
https://medium.com/@numencyberlabs
LinkedIn

https://www.linkedin.com/company/numencyber/

# 漏洞 # 网络安全 # web安全 # 数据安全 # 漏洞分析
本文为 numencyber 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
numencyber LV.5
专注于全球网络安全, Web3 及区块链安全领域,维护网络安全环境
  • 31 文章数
  • 22 关注者
Numen独家: 利用函数原生指针绕过最新版v8沙箱 (附在野 exp CVE-2022–3723)
2023-08-04
Numen Cyber 已完成对 Suiet 钱包的审计
2023-06-15
Numen:没有 Web2 底层的安全性,就没有 Web3 安全
2023-06-13
文章目录