Apache Commons Jxpath
Apache Commons Jxpath RCE
CVE-2022-41852
影响版本:commons-jxpath <= 1.3(最新版本为1.3,官方已停止更新)
Xpath是一门在XML文档中查找信息的语言,JXpath是Xpath的Java实现
由官方文档可知JXpath不仅提供了XPath解析XML文档,还实现了JavaBean、Collections、Map转XML。还有一点类似EL表达式的功能。

JXpath除了XPath函数,还支持联通Java的扩展函数
构造器调用
静态方法调用
普通方法调用
下面看一下JXPath是怎么解析并调用函数的
org.apache.commons.jxpath.ri.compiler.ExtensionFunction#computeValue

name包括全类名和方法名,再加上参数类型,就能定位到类方法

根据方法名返回ConstructorFunction或MethodFunction

接着调用构造函数或静态函数 function.invoke(context, parameters);
构造器利用
Spring当中有两个类的构造函数远程加载配置,可以构成RCE

静态方法利用
javax.naming.InitialContext#doLookup

java.sql.DriverManager#getConnection

com.alibaba.fastjson.JSON#parseObject
注意这里外边传参要用单引号,json字符串和外边传参都用双引号会解析错误

普通方法利用
DASCTF Apr.2023 X SU战队2023开局之战
ezjxpath
WAF禁用了一些危险类
BCEL绕过
官方wp:
其他一些想法:
Reference
Last updated
Was this helpful?