joomla在国内也叫“囧拉”,用的最多的是国外的一些用户,这个系统是一个内容管理
系统,在国内跟phpcms差不多的系统,许多国内做外贸的企业网站,也都用joomla系统来做
网站。目前最新版本joomla 3.7 爆出SQL注入漏洞,可以直接获取管理员账号密码,mysql数
据库权限分配不当,可以直接执行系统命令获取服务器权限,危害严重性较高。
joomla漏洞详情:
从上面的程序代码里进行网站安全审计,发现$config['base_path']这个变量值是由
JPATH_COMPONENT_ADMINISTRATOR常用变量值赋值并传入到base_path里,这个变量值是网站
注入的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的功能。