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

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

缺陷编号:wooyun-2012-013370

漏洞标题:ThinkSNS修改帐号验证不安全,可伪造

相关厂商:ThinkSNS

漏洞作者: 齐迹

提交时间:2012-10-23 10:35

修复时间:2012-12-07 10:35

公开时间:2012-12-07 10:35

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

危害等级:低

自评Rank:5

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2012-10-23: 细节已通知厂商并且等待厂商处理中
2012-10-23: 厂商已经确认,细节仅向厂商公开
2012-11-02: 细节向核心白帽子及相关领域专家公开
2012-11-12: 细节向普通白帽子公开
2012-11-22: 细节向实习白帽子公开
2012-12-07: 细节向公众公开

简要描述:

ThinkSNS开启邮箱验证后修改帐号邮箱发送的连接不安全,可伪造

详细说明:

版本最新的2.8
代码位置:
thinksns\addons\services\ValidationService.class.php

$validation_code = $this->__generateCode($vid);
$target_url = $target_url . "&validationid=$vid&validationcode=$validation_code";
$res = model('Validation')->where("`validation_id`=$vid")->setField(array('code','target_url'), array($validation_code, $target_url));
if ($res) {
return $target_url;
}else {
return false;
}
private function __generateCode($id) {
return md5($id.'thinksns#^!@*#%^!@#');
}


明显这个validationid和validationcode可以很容易伪造。作为开源程序这个应该做为常量安装的时候配置,但是他们没有

漏洞证明:

说说利用把
加入 a(用户id假设为1) 用户修改了安全邮箱就会收到一个验证连接
如下
http://test.thinksns.com/index.php?app=home&mod=Public&act=doModifyEmail&validationid=1&validationcode=304dbee8afac9f91bc211009ce9de3e8
而validationcode就等于 md5("1thinksns#^!@*#%^!@#")
所以可以通过这个方式绕过所有的验证。
好在数据不是通过参数接收的 安全级别给个低把。

修复方案:

用自定义的常量代替thinksns#^!@*#%^!@#
或者自由发挥!

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


漏洞回应

厂商回应:

危害等级:低

漏洞Rank:5

确认时间:2012-10-23 19:12

厂商回复:

此代码确实不严谨,验证串应该随机生成的。

最新状态:

暂无