Description
UP 是 LOMART 为 Joomla 开发的内容插件(plg_content_up),提供 shortcode、按钮、SCSS 编译与动作(action)在线安装等功能。该插件 5.0.0 - 5.2.0 与 6.0.0 - 6.0.29 版本的 onAjaxUp 在处理 com_ajax 调用时既没有校验 CSRF token,也没有校验 core.manage 权限。未认证访问者可以直接请求 index.php?option=com_ajax&group=content&plugin=up 入口;当参数 exist 指定的动作尚未安装时,插件会将参数 exist 直接拼入 GitHub API 路径,下载同名动作压缩包并解压到 plugins/content/up/actions/ 目录,随后无条件返回成功结果;exist 未做动作名白名单与路径规范化,可借助 ../ 把请求指向攻击者可控的公开 GitHub 仓库,形成未认证的远程代码安装面。6.0.29 及更早版本在下载动作时把 CURLOPT_SSL_VERIFYHOST 设为 0、CURLOPT_SSL_VERIFYPEER 设为 0,能够控制网络链路的攻击者可替换下载内容,向目标站点植入任意 PHP 动作代码;植入的动作只要包含 ajax_<name>.php,攻击者再用 data[action]=<name> 调用同一 com_ajax 入口,就会 include 该文件并执行 goAjax;若攻击者能够控制下载内容,才可能进一步形成未认证远程代码执行。本 POC 只验证未认证动作安装,不验证代码执行。6.1.0 与 5.2.1 版本补充了 Session::checkToken()、core.manage 权限校验与动作白名单,并恢复 TLS 校验。