Dedecms最新版任意用户密码重置漏洞的疑问

暗月博客 2019年11月21日22:36:15评论405 views字数 469阅读1分33秒阅读模式
摘要

网上说的都是任意用户密码重置,但是真的是任意用户吗?
我们来看下网上给的poc:

网上说的都是任意用户密码重置,但是真的是任意用户吗?

我们来看下网上给的poc:

http://127.0.0.1/dedecms/member/resetpassword.php?dopost=safequestion&safequestion=0.0&safeanswer=&id=1

根据给出的分析我们也跟进下。

代码:

Dedecms最新版任意用户密码重置漏洞的疑问

这里我们赋值safequestion=0.0,为什么?因为如果用户没设置安全问题的话,在数据库中的值为0

Dedecms最新版任意用户密码重置漏洞的疑问

如果我们我们设置为0的话,empty(0)就会为true,为true以后后面的$safequestion就会被赋值为空,但是"" == "0"是为false的,所以就没法重置密码。

而且也不能给safequestion=abc这种,虽然"abc" == 0是为true的,但是safequestion在数据库中是字符串,所以"abc" = "0"是false的。

而设置safequestion=0.0,"0.0" == "0"是为true的。

所以根据以上分析,首先要保证当前重置的用户是没有设置安全问题的。

感谢hanfengb的解疑。

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
暗月博客
  • 本文由 发表于 2019年11月21日22:36:15
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Dedecms最新版任意用户密码重置漏洞的疑问http://cn-sec.com/archives/73641.html

发表评论

匿名网友 填写信息