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

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

缺陷编号:wooyun-2014-075724

漏洞标题:嘉缘人才管理系统xss可以盗取管理员cookie

相关厂商:finereason.com

漏洞作者: nextdoor

提交时间:2014-09-11 10:55

修复时间:2014-12-10 10:56

公开时间:2014-12-10 10:56

漏洞类型:xss跨站脚本攻击

危害等级:高

自评Rank:12

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-09-11: 细节已通知厂商并且等待厂商处理中
2014-09-13: 厂商已经确认,细节仅向厂商公开
2014-09-16: 细节向第三方安全合作伙伴开放
2014-11-07: 细节向核心白帽子及相关领域专家公开
2014-11-17: 细节向普通白帽子公开
2014-11-27: 细节向实习白帽子公开
2014-12-10: 细节向公众公开

简要描述:

嘉缘人才管理系统xss可以盗取管理员cookie

详细说明:

漏洞细节:
最新下的官网的源码frcmsV31GBK
0x01 代码分析
首先看看输入点的文件comment/newscommmentok.php

$c_ip=getip();
$c_nid=intval($newsid);
$c_addtime=date('Y-m-d H:i:s');
$c_content=$pj_content; //客户端接受的$pj_content未过滤
$c_title=$n_title; //客户端接受的$n_title未过滤

if(!$cfg['commentcheck']){

$pbarr=explode('|',$cfg['gbmanagerubbish']);
foreach ($pbarr as $value){


//var_dump($value);
$flag=strstr($pj_content,$value)?2:1;
if($flag){
break;
}
}
$c_pass=$flag;
}else{

$c_pass=0;
}

if($c_pass==0){
$tsxx="您的评论内容已经提交成功!\\n管理员审核后在相关页中显示!";
}elseif($c_pass==1){
$tsxx="您的评论内容已经提交成功!\\n请刷新页面!";
}elseif($c_pass==2){
$tsxx="您的评论内容有非法关键词!\\n请阅读发表评论须知";
}
$sql="insert into {$cfg['tb_pre']}comment(c_username,c_content,c_nid,c_pass,c_addtime,c_ip,c_title ) values ('$c_username','$c_content','$c_nid','$c_pass','$c_addtime','$c_ip','$c_title')";
//exit($sql);
$db->query($sql);
echo "<script language=JavaScript>alert('$tsxx');window.opener.location.reload();window.close();</script>";
exit;
}else{
echo "<script language=JavaScript>alert('网站不允许发表评论!');window.close();</script>";exit;
}
}else{
echo "<script language=JavaScript>alert('参数错误!');window.close();</script>";exit;
}
?>


分析输出点
在看看后台输出点的文件admin/websys_comment.php

$rsdb=array();
$sqladd=''; $gblist='';
if(isset($p)&&$p!='') $sqladd.="where c_pass=".intval($p);
$sql="select c_id,c_username,c_nid,c_title,c_content,c_addtime,c_ip,c_pass from {$cfg['tb_pre']}comment $sqladd order by c_id desc";
$query=$db->query($sql);
$counts = $db->num_rows($query);
$page= isset($_GET['page'])?$_GET['page']:1;//默认页码
$getpageinfo = page($page,$counts,"websys_comment.php?p=$p",20,5);
$sql.=$getpageinfo['sqllimit'];
$query=$db->query($sql);
while($row=$db->fetch_array($query)){
$gblist.="<tr align=\"center\">\r\n";
$gblist.="<td>$row[c_id]</td>\r\n";
$gblist.="<td>$row[c_username]</td>\r\n";
$gblist.="<td align=\"left\"><a href=\"{$cfg['path']}article/article.php?newsid=$row[c_nid]\" target=\"_blank\">$row[c_title]</a> 【<span onClick=show(\"con$row[c_id]\") style=\"cursor:pointer;\">评论内容</span>】</td>\r\n"; //输出点也未过滤
$gblist.="<td>$row[c_addtime]</td>\r\n";
$gblist.="<td>$row[c_ip]</td>\r\n";
$gblist.="<td>";
if($row["c_pass"]==1){$gblist.=" <font color=green>已审核</font>";}elseif($row["c_pass"]==2){$gblist.=" <font color=red>机器人屏蔽</font>";}else{$gblist.=" 屏蔽中";}
$gblist.="</td>\r\n";
$gblist.="<td><input type=\"checkbox\" name=\"cid\" value=\"$row[c_id]\" class=\"checkbox\" /></td>\r\n";
$gblist.="</tr>\r\n";
$gblist.="<tr id=\"con$row[c_id]\" style=\"display:none;\">\r\n";
$gblist.="<td colspan=\"7\">$row[c_content]</td>\r\n";
$gblist.="</tr>\r\n";
}
}


从而导致XSS漏洞,可以盗取管理员cookie,键盘记录等操作

漏洞证明:

0x02 漏洞利用
出入利用代码

jiayuan3PNG.PNG


jiayuan4.PNG


jiayuan5.PNG


利用cookie登陆

jiayuan6.PNG


成功登陆

修复方案:

利用cleartags函数对标题和内容进行过滤

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2014-09-13 01:25

厂商回复:

感谢提交此问题,我们会紧急修复此问题。

最新状态:

暂无