网络安全
当前位置: 首页 >> 网络安全 >> 安全事件 >> 正文
Joomla!平台上二阶SQL注入漏洞
作者:   来源:   日期:2018年03月13日 15:47

一、      事件背景

Joomla!是美国Open Source Matters团队开发的一套开源的内容管理系统(CMS)。它是网站的一个基础管理平台。几乎适合从个人网站到各种企业网站、分类信息系统、电商销售类型的各类网站,在国内也有诸多资源提供Joomla下载。

2月底,国外的安全研究人员发现Joomla!平台上二阶SQL注入漏洞(CVE-2018-6376)。通过该漏洞,可将低权限用户(Manager)提升为更高的的用户权限(AdministratorSuper Administrator)。

相关链接如下:

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-6376

二、      漏洞复现

本地搭建一个版本为3.8.3Joomla!测试环境,如下图所示:

无标题

创建了具有“Super Users”权限的用户“admin”,以及具有“Manager”权限的另一个用户“test”,如下图所示:

目标是将“Manager”权限的用户提升为“Super Administrator”权限,因此现在以用户“test”的身份登录。下图显示了用户“test”的仪表盘,并且可以看到“Super User”当前也处于登录状态:

无标题

从官方公开的漏洞通告中可以知道,受影响的实例是位于配置文件资料更新页中。下图显示了用户“test”的配置文件更新页面:

使用BurpSuite来拦截配置文件更新请求。如下所示,表单数据的POST请求发向了以下地址:

在受影响的参数'jform [params][admin_style]‘后面加上‘[0]‘,并注入以下PAYLOAD来获取目标数据库名称,如下图所示:

Payload: extractvalue(0x0a,concat(0x0a,(selectdatabase())))

成功提交此请求后,配置文件更新页将显示参考消息已保存的项目,如下图所示:

以上并没有显示任何异样,因为该页面并没有使用被注入的PAYLOAD构造SQL查询并执行。通过访问下面的URL,使注入的有效载荷构造SQL查询,并执行,如下图所示:

http://192.168.86.128/joomla/administrator/index.php

以下PAYLOAD将获取到超级管理员用户“admin”session id,如下图所示:

Payload: extractvalue(0x0a,concat(0x0a,(selectsession_id from gh8t4_session where username='admin')))

成功获取session id后,就可以以管理员的身份登陆后台了。

三、      漏洞分析及危害

1)  漏洞分析

官方描述此次漏洞产生的原因是在Hathorpostinstall信息处,由于错误的类型转换导致了注入漏洞(hathorjoomla自带的两个后台模板之一)。

查看相关文件‘administrator/templates/hathor/postinstall/hathormessage.php’的代码片段。如下图所示,第一个红框代码主要是从‘admin_style’参数获取用户的输入值并传递给‘adminstyle’变量,第二个红框代码直接使用用户提供的输入来构建SQL查询。这里把它看成是一个数组,因此索引值为0的存储值将被用于构造查询。

如下图所示:在漏洞利用的时候,为了避免程序将整个PAYLOAD视为一个字符串,通过在受影响的参数'jform [params][admin_style]‘后面添加’[0]‘来改变参数名称,并将PAYLOAD注入到了’admin_style’的第0个索引中:

查看相应的补丁:

原来的第一位改为对取出信息做强制类型转换,然后拼接入SQL语句。

2)  漏洞危害

恶意攻击者可以利用此SQL注入漏洞将低权限用户(Manager)提升为更高的用户权限(AdministratorSuper Administrator),攻击者还可以获取网站数据库大量敏感信息。

四、      数据分析

1)  世界分布

世界范围内使用Joomla!的网站数量约为9万台左右。其中,排名前五的国家分别为:美国、中国、德国、日本、澳大利亚。

下图为世界范围内使用Joomla!的网站分布情况:

1、世界分布图

下图为世界范围内使用Joomla!的网站数量排名前十的省份或地区:

2、世界排名前十

2)  国内分布

中国境内使用Joomla!的网站数量约为1.7万台左右。其中,排名前五的省份或地区分别为:台湾省、香港特别行政区、浙江省、北京市、上海市。

下图为中国范围内使用Joomla!的网站分布情况:

3、国内分布图

下图为中国范围内使用Joomla!的网站数量排名前十的省份或地区:

4、国内排名前十

下图为国内使用Joomla!的网站的国内运营商排名:

5、国内运营商排名前十

五、      防范建议

1)  漏洞涉及版本

受影响Joomla!版本:<= 3.8.3 and >= 3.7.0

2)  修复建议

请用户务必升级Joomla!至3.8.5版本(截至本文发布时的最新版本),相关链接如下:

https://downloads.joomla.org/

上一条:CISCO防火墙设备的拒绝服务&远程代码执行漏洞(CVE-2018-0101) 下一条:MikroTik RouterOS远程代码执行漏洞

关闭

办公地点:第四教学楼东侧信息技术服务中心      办公时间:周一至周五 8:00-11:30   14:30-18:00(春夏)   14:00-17:30(秋冬)
*办理个人业务请携带本人身份证件
学校地址:山东省烟台市莱山区滨海中路191号
版权所有:山东工商学院信息技术服务中心