网站地图    收藏   

主页 > 后端 > 网站安全 >

ThinkSNS修改帐号验证不安全,可伪造 - 网站安全

来源:自学PHP网    时间:2015-04-17 11:59 作者: 阅读:

[导读] ThinkSNS开启邮箱验证后修改帐号邮箱发送的连接不安全,可伪造版本最新的2.8代码位置:thinksns\addons\services\ValidationService.class.php$validation_code = $this-__generateCode($vid);$target_url =......

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#^!@*#%^!@#
或者自由发挥!

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论