标签:
密码重置一般需要四个步骤:
1、 输入重置账号
2、 输入身份验证
3、 进行密码重置
4、 完成密码重置
例1, 联想3c站密码重置
开启Firefox,输入:http://www.enjoy3c.com/home/validateCode.do?Type=1
填写好用户名,点击下一步
此时,这里有两种方式重置密码
1、 通过手机
2、 通过电子邮件
在此,我们选择通过手机重置密码
使用burpsuite抓取重置密码请求包,将请求包中的手机号直接修改为自己的手机号,从而获取到重置密码的验证码:z0ff8,然后,提交该重置密码的验证码,就可以成功重置该账号密码了。
POST /home/validateCode.do?type=0 HTTP/1.1
Host: www.enjoy3c.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://www.enjoy3c.com/getPasswordByMobile.do
Cookie: JSESSIONID=66390B971CDD8060950B21D5E4D39A8C; Hm_lvt_5cdeab8187ee7fa1343ef10877a1eabc=1453545913; Hm_lpvt_5cdeab8187ee7fa1343ef10877a1eabc=1453545982
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 10
code=z04f8
安全建议:
对于短信验证:
1、 重置密码的时候,采用身份验证机制,即:只能是该用户才能修改此密码。
2、 短信验证码复杂化,且短信验证码防爆破设计(如:三次输入错误,自动锁定)。
对于链接验证:
1、 重置密码的时候,采用身份验证机制,即:只能是该用户才能修改此密码。
2、 Refer、Token验证,服务端加密验证。
在此,单独解释一下“重置密码的时候,采用身份验证机制,即:只能是该用户才能修改此密码”这句话
这是dvwa渗透演练平台中users表中数据
user_id first_name last_name user password avatar last_login failed_login
1 admin admin admin 5f4dcc3b5aa765d61d8327deb882cf99 http://localhost/dvwa/hackable/users/admin.jpg 2015-12-10 11:48:17 0
2 Gordon Brown gordonb e99a18c428cb38d5f260853678922e03 http://localhost/dvwa/hackable/users/gordonb.jpg 2015-12-10 11:48:17 0
3 Hack Me 1337 8d3533d75ae2c3966d7e0d4fcc69216b http://localhost/dvwa/hackable/users/1337.jpg 2015-12-10 11:48:17 0
4 Pablo Picasso pablo 0d107d09f5bbe40cade3de5c71e9e9b7 http://localhost/dvwa/hackable/users/pablo.jpg 2015-12-10 11:48:17 0
5 Bob Smith smithy 5f4dcc3b5aa765d61d8327deb882cf99 http://localhost/dvwa/hackable/users/smithy.jpg 2015-12-10 11:48:17 0
大家可以看到,在该表中,用户的信息,其实,就是一行行的记录
一行的记录代表一个用户的相关信息
如果,在找回密码的时候,直接输入了某个属性,比如:手机号,邮箱等等,通过这个属性来修改密码,而不验证这个属性对应的真实用户(即:属性与真实用户没有准确的对应关系),那么,我们就可以任意填写手机号,邮箱等等来作为身份验证的凭据,此时,程序直接就通过我们的验证凭据了。
原因就是因为程序的验证逻辑存在问题。
大家可以仔细阅读以下功能相关的源代码,并做以下功能相关源代码的安全审计,此时,我也没有找到合适的源代码为大家演示,大家可以自己去找找,看多了,自然就明白了。
如图所示:
标签:
原文地址:http://www.cnblogs.com/windclouds/p/5413518.html