shopex 4.8.5密码取回处新生成密码可预测漏洞

- AV AC AU C I A
发布: 2025-04-13
修订: 2025-04-13

在shopex 4.8.5中,密码取回没有使用发送激活链接到邮箱的方式,而是直接生成一个新的密码发送到用户邮箱中。这个设计本身就不够安全,新生成的用户密码实际上就是取了当前时间 microtime() 的md5值的前6位。 但PHP 中microtime()的值除了当前服务器的秒数外,还有微秒数,比如: 0.55452100 1315562338 微妙数的变化范围在0.000000 -- 0.999999 之间,一般来说,服务器的时间可以通过HTTP返回头的DATE字段来获取,因此我们只需要遍历这1000000可能值即可。 但我们要使用暴力破解的方式发起1000000次网络请求的话,网络请求数也会非常之大。可是shopex非常贴心的在生成密码前再次将microtime() 输出了一次: $messenger = &$this->system->loadModel('system/messenger');echo microtime()."<br/>"; 两次microtime()的调用间隔非常之短,使得我们破解的成本实际上非常低廉。至今仍然没有想明白shopex为什么要写这段代码,难道是开发留的后门? shopex 4.8.5 官方已经更新,请下载官方补丁 www.shopex.cn/

0%
暂无可用Exp或PoC
当前有0条受影响产品信息