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

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

缺陷编号:wooyun-2014-047358

漏洞标题:mcms1.3手机建站之星任意用户登录漏洞

相关厂商:mcms.cc

漏洞作者: msx2009

提交时间:2014-01-03 21:03

修复时间:2014-04-03 21:04

公开时间:2014-04-03 21:04

漏洞类型:设计缺陷/逻辑错误

危害等级:高

自评Rank:10

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

mcms1.3手机建站之星任意用户登录漏洞

详细说明:

文件 plugins/gov.user/index.php 90行
function m__register() 函数

$params = array();
if (isset($_SESSION['uid']) && isset($_SESSION['uname'])) helper :: redirect('index.php');
if (!isset($_POST['username']) || empty($_POST['username'])) die('{"code":"200","msg":"请填写用户名"}');
if (strlen($_POST['username']) < 6 || strlen($_POST['username']) > 20) die('{"code":"201","msg":"用户名必须6到20位之间"}');
if (!isset($_POST['password']) || empty($_POST['username'])) die('{"code":"202","msg":"请填写用户密码"}');
if (strlen($_POST['password']) < 6 || strlen($_POST['username']) > 20) die('{"code":"203","msg":"密码必须6到20位之间"}');
if ($_POST['password'] != $_POST['passconfirm']) die('{"code":"204","msg":"两次输入密码不一致"}');

//if (!preg_match("/\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/", $_POST['email'])) {
// die('{"code":"205","msg":"邮箱格式错误"}');
//}
// if (!preg_match("~^(1)\d{10}$~", $_POST['moblie'])) die('{"code":"206","msg":"手机号格式不正确"}');
$authcode = md5(strtoupper($_POST['authcode']));
if ($authcode != $_SESSION['reg']) {
die('{"code":"207","msg":"验证码错误"}');
}
$params['uname'] = $_POST['username'];
$params['upass'] = helper :: password_encrypt($_POST['password']);
$params['uqq'] = isset($_POST['uqq']) && !empty($_POST['uqq']) ? intval($_POST['uqq']) : '';
$params['uemail'] = isset($_POST['email']) && $_POST['email']!='' ? $_POST['email'] : '';
$params['uphone'] = isset($_POST['moblie']) && $_POST['moblie']!='' ? $_POST['moblie'] : '';
$params['reg_date'] = time();
$params['reg_ip'] = helper :: getip();
//用户注册绑定QQ账号
if(isset($_SESSION['qq']['openid']) && $_SESSION['qq']['openid']!='') {
$params['qqid'] = $_SESSION['qq']['openid'];
}
$res = $dbm -> single_insert(TB_PREFIX . "user_list", $params); //插入了数据库,之前在这个请求中没有验证用户名是否存在

漏洞证明:

首先注册一个会员 aaa123 密码 test123,
打开注册页面,填写如下

QQ截图20131229230340.jpg


点击注册 burpsuit 截断
把用户名改成 aaa123

QQ截图20131229230500.jpg


提交
显示的是aaa123的界面

QQ截图20131229230550.jpg


成功登录了aaa123的账号

修复方案:

验证用户名

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:13

确认时间:2014-01-03 22:12

厂商回复:

现已修复请放心使用

最新状态:

暂无