跳转到帖子
  • 游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

    赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

    TheHackerWorld官方

Joomla 3.4.4-3.6.3账户创建权限提升测试记录


轩辕三官

推荐的帖子

0x00 简介

涉及漏洞:

CVE-2016-8869

CVE-2016-8870

利用上述漏洞,攻击者可以注册特权用户。

POC:

https://github.com/XiphosResearch/exploits/tree/master/Joomraa

https://www.exploit-db.com/exploits/40637/?简易资讯聚合

分析文章:

http://paper.seebug.org/88/

http://paper.seebug.org/86/

注:

0x01和0x02摘自分析文章。

http://paper.seebug.org/88/

http://paper.seebug.org/86/

0x01 CVE-2016-8870

漏洞影响

当网站注册关闭时,仍然可以创建用户。

影响版本

3.4.4至3.6.3

漏洞原理

用户注册有两种方法:

userscontrollerregistration:register()位于components/com _ users/controllers/registration . PHP中。

UsersControllerUser:register()位于components/com _ users/controllers/user . PHP中

与userscontrollerregistration:register()相比,UsersControllerUser:register()的实现没有这几行代码:

//如果注册被禁用-重定向到登录页面。

if(jcomponentphelper:get params(' com _ users ')-get(' allowUserRegistration ')==0)

{

$ this-set redirect(j route:_(' index . PHP?option=com_usersview=login ',false));

返回false

}

这几行代码检查是否允许注册,也就是说,如果我们可以使用UsersControllerUser:register()的方法进行注册,就可以绕过这个测试。

补丁分析

userscontroleruser:register()方法已被正式删除。

注:

以上引自http://paper.seebug.org/86/.

0x02 CVE-2016-8869

漏洞影响

当网站注册关闭时,您仍然可以创建特权用户。

影响版本

3.4.4至3.6.3

漏洞原理

构建一个特殊的请求包,将值分配给用于表示权限的组。

补丁分析

userscontroleruser:register()方法已被正式删除。

注:

以上引自http://paper.seebug.org/88/.

0x03 实际测试

测试系统:

Win8.1 x86

1、搭建php环境

下载phpStudy

安装后如图所示

2-1.png

配置目录是:C:\WWW

2、配置Joomla环境

从以下地址下载Joomla 3 . 6 . 3版:

https://github . com/Joomla/Joomla-CMS/releases/download/3 . 6 . 3/Joomla _ 3 . 6 . 3-Stable-Full _ package . tar . gz

解压后,将文件放在C:\WWW下。

访问http://localhost进入安装页面。

2-2.png

选择MySQL作为数据库类型,如图所示

2-3.png

登录到数据库,默认密码是root

2-4.png

等待安装完成。

3、网页登陆,测试

如图所示,环境配置成功。

3-1.png

4、poc测试

poc地址:

https://github.com/XiphosResearch/exploits/tree/master/Joomraa

参数如下:

joomraa.py -u hacker -p密码-e hacker@example.com http://192 . 168 . 1 . 111

如下图,提示您登录邮箱查看激活邮件,因此需要为邮件参数填写真实邮箱地址。

3-2.png

此时查看Joomla后台,发现用户添加成功,但状态为未激活,如图。

3-3.png

5、设置Joomla,开启发送激活邮件的功能

选择全局配置-全局-服务器。

3-4.png

设置邮箱参数

注:

需要为邮箱帐户打开SMTP功能。

选择发送测试邮件来验证邮箱,如图所示

5-1.png

如图所示,验证邮件是否被成功接收。

3-5.png

6、再次测试POC

成功收到激活邮件,如图

3-6.png

打开链接,报错,如图。

3-7.png

在以下位置检查Joomla源代码:

https://github . com/Joomla/Joomla-CMS/blob/staging/components/com _ users/controllers/registration . PHP

找到了问题的原因:如果用户注册或账号激活被禁用,抛出a403。

如下图

5-2.png

7、开启用户注册功能

选择【全局配置】-【用户】-【用户选项】,点击【允许用户注册】,如图。

4-1.png

注:

从Joomla3.4开始,默认关闭用户注册功能。

8、最后测试

打开用户注册功能后,再次点击激活邮件,即可成功激活账户。

4-2.png

用户激活显示在后台,如图所示

4-3.png

9、得出最终结论

当用户注册在网站后台关闭,但状态为非活动时,可以利用此漏洞创建特权用户。

攻击者的邮箱只有在网站后台开启发送邮件的功能后才能收到激活邮件。

只有在网站后台开启用户注册功能,激活码才能生效,这样才能激活用户。

非活动用户不能登录。

Joomla 3.4版本以后,默认关闭用户注册功能。

Joomla升级到3.6.4后,测试poc显示攻击成功。但是网站后台没有添加用户,也没有发送激活邮件,所以防御成功。

综上所述,攻击者需要同时满足以下条件才能获得网站后台管理员权限:

Joomla版本是3.4.4-3.6.3。

网站在后台开启邮件发送功能。

在后台打开用户注册功能。

0x04 备注

感谢DM的帮助。

本文仅为测试记录。

根据POC的说法,开发一个python脚本来检查网站是否开放注册。地址如下:

https://github . com/3g student/Test-Exploit-for-Joomla-3 . 4 . 4-3 . 6 . 4

可以用来简单判断网站是否支持用户注册。

在此提醒网站管理员,尽快升级Joomla,如果Joomla版本过低,并且开启发送邮件和用户注册功能,那么很容易遭到攻击。

留下回复

链接帖子
意见的链接
分享到其他网站

黑客攻防讨论组

黑客攻防讨论组

    You don't have permission to chat.
    • 最近浏览   0位会员

      • 没有会员查看此页面。
    ×
    ×
    • 创建新的...