CVE-2018-6376:Joomla!二阶SQL注入漏洞

x
用微信扫描二维码
分享至好友和朋友圈

  

  Joomla!是一套全球知名的内容管理系统。去年,在500000行代码中发现一个LDAP注入漏洞。攻击者利用LDAP注入漏洞可以完全控制依赖LADP进行认证的版本号小于 v3.7.5的Joomla! 版本。

  研究人员最近又发现一个Joomla!核心的漏洞,影响3.8.4之前的所有版本。RIPS发现一个二阶SQL注入,攻击者可以利用二阶SQL注入来进行权限提升,攻击者可以获取完全的管理权限。

  注:RIPS是一款对PHP源码进行风险扫描的工具。

  
受影响版本

  受影响的Joomla! 版本为3.7.0到3.8.3版本。

  攻击者需要用Joomla!后台中manager帐号进行认证。该用户组在Joomla!中默认的权限是低于Administrator 和Super Users用户组的。

  
影响

  攻击者利用该漏洞可以从数据库中读取任意的数据,这些数据随后可以用来扩展攻击者低权限。通过执行PHP代码,攻击者可以获取Joomla!的完全管理权限。

  
自动检测

  RIPS经过深度代码分析,发现两个高危的SLQ注入漏洞。

  

  在漏洞中,用户控制的输入用来构造没有任何处理的SQL查询。

  

  RIPS引擎中的静态代码分析算法成功地检测到了用户输入中的危险部分。还发现Joomla!数据库抽象层的一个方法是安全相关的,该方法吧执行数据库查询的SQL代码联系在一起。攻击者可以注入SQL代码来修改数据库查询来窃取隐私数据。

  
技术分析:二阶逻辑SQL盲注入

  SQL注入定位在文件administrator/templates/hathor/postinstall/hathormessage.php中。下面的代码总结了该漏洞:

  

  每当dashboard加载时,组件会调用函数hathormessage_postinstall_condition() 来post安装消息。该函数中,变量\$adminstyle的内容会与第10行中构造的SQL查询中的WHERE部分相联系。如果攻击者可以通知参数admin_style的内容,就可以注入任意SQL代码到14行中的查询中。

  第4行接收到的参数admin_style含有用户用来配置后台模板的ID,用户可以在profile设定中改变该参数。通过拦截保存的请求中的用户参数并改变admin_style的值来进行快速验证,表明数据会直接保存到数据库中而不需要进行额外的检查或处理。攻击者就可以注入任意内容到该参数,并用于之后的SQL查询中。因为payload首先会保存到数据库,然后用于查询,所以这种SQL注入就叫做二阶漏洞。查询的结果是不会直接展示在web页上,这样攻击者需要用基于错误或者时间的注入技术来进行利用。

  下图说明了SQL查询中XPath错误消息如何用于读取当前登录管理员的session ID。

  

  
总结

  安全漏洞是无处不在的,研究人员发现一个影响Joomla! 3.8.4以前版本的SQL注入漏洞。该漏洞可以用RIPS静态代码分析器进行识别,本文证明了二阶SQL盲注的根源和RIPS如何在复杂的PHP项目中找出隐藏的安全问题。

  

  

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

跟贴 跟贴 0 参与 0
推荐
资讯
财经
科技
娱乐
游戏
搞笑
汽车
历史
生活
更多
二次元
军事
教育
健身
健康
家居
故事
房产
宠物
旅游
时尚
美食
育儿
情感
人文
数码
三农
艺术
职场
体育
星座
© 1997-2020 网易公司版权所有 About NetEase | 公司简介 | 联系方法 | 招聘信息 | 客户服务 | 隐私政策 | 广告服务 | 侵权投诉 Reporting Infringements | 不良信息举报

嘶吼RoarTalk

不一样的互联网安全新视界

头像

嘶吼RoarTalk

不一样的互联网安全新视界

4272

篇文章

8212

人关注

列表加载中...
请登录后再关注
x

用户登录

网易通行证/邮箱用户可以直接登录:
忘记密码