PHP代码审计————6、 PHP代码审计之找回密码问题

验证Token

在找回密码的时候生成一个token,然后存储到数据库中,然后把找回密码的地址发送到邮箱中,url中就含有token,由用户点开后就可以修改密码。

延伸

一些CMS的密码加密方式很难被破掉,有时候拿到了管理的密码破不掉

利用方发:一般找回密码是用的邮箱,首先把管理的邮箱注入出来,然后再去找回密码,再把数据库的token注入出来,构造一下地址就可以重置密码了。

rand函数生成Token

$resetpwd=md5(rand());

对rand()函数生成出来的数字进行md5,某些平台下(例如:Windows )Rand_max只有32768,如果需要的范围大于32768,那么指定min和max参数就可以生成大于Rand_MAX的数了,或者考虑使用mt_rand()来替代它

$encryptstring=md5($this->time.$verification.$auth);

$timetemp=date("Y-m-d H:i:s",$this->time);
$auth=util::strcode($timetemp,'ENCODE');`

算法的 KEY 并没有初始化,如果知道了这个时间,就可以生成加密的字符串

猜你喜欢

转载自blog.csdn.net/Fly_hps/article/details/79845427