涂鸦王国找回密码的链接为弱随机数,可被枚举出来导致账号密码被重置。我连续发送了五封找回密码的邮件,在绑定的邮箱里查看找回密码的链接为
http://poobbs.com/account/resetpwd/mid/a5148ecf1c9f85aadcf0e2feb881df73
后面为一串MD5加密,反解发现是一个4位数字,通过发送多封可以推算出这个随机数大概是1111-13000之间。大部分为四位数。我们可以写个程序把所有四位数的MD5给列出来,这里我用Python先把所有结果列出,代码如下:
import md5 f=open("pass.txt","a") for i in range(1111,9999): f.write(md5.new(str(i)).hexdigest()) f.write("n") f.close()
在这简短的Python代码里我把所有四位数的MD5存到了一个txt里,接下来就是用burpsuite进行暴力破解了。根据返回的长度不一致可以辨别哪些链接是有效的,无效的链接长度为347,有效链接大概为8400+ 如图:
由于没有任何限制,破解过程大约需要20分钟,途中发现好多可用链接,估计是很多人点了找回密码而又没去使用的结果。
国内知名插画家deo.R的账号也同样被劫持在内:
在已知邮箱的情况下可任意修改其密码~
修复方案:
随机数太弱。且建议设置失效时间,如果三分钟内没有使用链接即失效可有效防止
转载请注明:jinglingshu的博客 » 涂鸦王国弱随机数导致任意用户劫持漏洞