#### 漏洞详情: #### 漏洞出现在`/ucenter/repass.php`第1-44行: debug = false; $mailType = "HTML"; //信件类型,文本:text;网页:HTML $email = $email; //收件人邮箱 $emailTitle = "".$mkcms_name."用户找回密码"; //邮件主题 $emailBody = "亲爱的".$username.":
感谢您在我站注册帐号。
您的初始密码为123456
如果此次找回密码请求非你本人所发,请忽略本邮件。

-------- ".$mkcms_name." 敬上

"; // sendmail方法 // 参数1是收件人邮箱 // 参数2是发件人邮箱 // 参数3是主题(标题) // 参数4是邮件主题(标题) // 参数4是邮件内容 参数是内容类型文本:text 网页:HTML $rs = $smtp->sendmail($email, $smtpMail, $emailTitle, $emailBody, $mailType); if($rs==true){ echo ''; }else{ echo "找回密码失败"; } } } } ?> 本质上来说此处是一个逻辑问题,程序未通过邮箱等验证是否为用户本身就直接先在第13-14行把用户密码重置为123456了,根本没管邮件发送成功没有。 ![](img/KCMS5.0任意用户密码重置/20190223150934-f90753aa-3739-1.jpeg) 此处过滤了单引号,所以无法通过然后邮箱账号进行重置 ### 参考链接 ### https://xz.aliyun.com/t/4189