远程代码执行
简易RCE
入侵管理员帐户后,我们可以使用 Cockpit 的标准Finder组件上传 Web shell,以实现远程代码执行:
将 web shell _shell.php 上传到 Cockpit 根目录
使用 web shell 在服务器上执行命令
UtilArrayQuery::buildConditionMongoLite库的方法中的PHP注入
让我们考虑类的方法registerCriteriaFunction,Database它为文档的指定条件(过滤器)创建条件函数:
buildCondition以及类的相关功能UtilArrayQuery:
记下$key包含字段名称的变量。它的内容按原样插入到未来的字符串文字中,而不会被转义。
因此,通过控制$key变量的内容,我们可以用单引号从字符串文字中转义(打破它),以便注入任意 PHP 代码。
为了演示漏洞,我们将使用/accounts/find方法(需要身份验证)。此方法支持自定义标准(过滤器),这意味着它将允许我们将任意内容放置在$key: