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

  • A+
所属分类:moonsec_com
摘要

网上说的都是任意用户密码重置,但是真的是任意用户吗?
我们来看下网上给的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的解疑。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: