joomla 注入漏洞 获取管理员及执行命令漏洞


 
 
            joomla在国内也叫“囧拉”,用的最多的是国外的一些用户,这个系统是一个内容管理
 
系统,在国内跟phpcms差不多的系统,许多国内做外贸的企业网站,也都用joomla系统来做
 
网站。目前最新版本joomla 3.7 爆出SQL注入漏洞,可以直接获取管理员账号密码,mysql数
 
据库权限分配不当,可以直接执行系统命令获取服务器权限,危害严重性较高。
 
 
joomla漏洞详情:
 
从上面的程序代码里进行网站安全审计,发现$config['base_path']这个变量值是由
 
JPATH_COMPONENT_ADMINISTRATOR常用变量值赋值并传入到base_path里,这个变量值是网站
 
组件目录的本地路径。通过安全分析发现:Sine安全公司是一家专注于:服务器安全网站安全、网站安全检测、网站安全测试、于一体的安全服务提供商。
 
注入的URL如下所示:
 
/index.php?option=com_fields&view=fields&layout=sine&list[fullordering]
=updatexml(0x3a,concat(1,(select%20md5(1))),1)
 
 
Layout参数值:Modal
 
View参数值:Fields
 
访问此URL可以显示站点上可用的所有自定义字段的列表。
 
代码数据在传递的参数中获取 layout 和 view 的参数值进行初始化视图交互,并且调用 
 
$model = $this->getModel($viewName) 加载对应数据的模型,最终会调用 $view-
 
>display() 函数进行视图处理。
 
在这种情况下,基于MarchModelFields模型的
 
./administrator/components/com_fields/models/fields.php
 
文件中包含了我们发现的那个漏洞。
 
用户进行输入后会启动list.fullordering状态,因为FieldsModelFields模型是JModelList
 
类继承而来的,它同样也包含上面的代码段,Sine安全公司是一家专注于:服务器安全、网站安全、网站安全检测、网站安全测试、于一体的安全服务提供商。
 
通过以上sql注入漏洞可以读取用户名密码hash还有session,由于hash基本解不出,可以自
 
动寻找最近登录的管理员账户并获取session。考虑到seesion过期,做了挂机等管理员上线
 
然后维持session的功能。
分享: