### 简要描述:
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#^!@*#%^!@#")
所以可以通过这个方式绕过所有的验证。
好在数据不是通过参数接收的 安全级别给个低把。
暂无评论