逻辑漏洞-任意密码重新设置

1.任意账号密码重置的6种方法

(1)短信验证码回传

通过手机找回密码,响应包中包含短信验证码——使用burp进行抓包

smscode=xxxxxx 短信验证码

(2)修改用户名,用户id或手机号重置任意账号密码

服务端只验证用户名、ID是否存在,而不去验证用户和当前手机号是否匹配,那么我们就可以通过修改用户名、ID去修改其他用户的密码了。

当然可以修改的地方不限于找回密码的数据包,比如修改资料的地方也可能存在这样的漏洞。

进行burp抓包,发送到重发器,修改id的值,是否发生变化

(3)修改响应包重置任意账号密码

ture和false

如果客户端收到true的信息,那么就会向带着true的信息向服务端请求进入下一步,而服务端收到true的信息,就会允许客户端进入下一步。

而借助burpsuite,我们可以修改服务端返回到客户端的信息,这样一来,我们就可以输入任意短信验证码,然后将服务端返回的false信息改为true就可以绕过短信验证码的验证了。

(4)跳过验证步骤重置任意账号密码

objectmoved

object moved to here.

上述数据包是用来跳转到输入密码的界面。

我们猜想能否输入任意验证码,然后直接访问输入密码界面,结果是可以的,而且重置密码成功了。

(5)重置密码链接中token值未验证或不失效导致任意账号密码重置

使用邮箱重置密码时,服务端向邮箱发送一个重置密码的链接,链接中包含当前用户的身份信息(如用户名或用户ID)和一个随机生成的token信息,如果未对token值进行验证或是验证后不失效,我们就可以通过修改用户名或用户ID来重置任意账号密码。

某网站使用邮箱找回密码时,服务端向邮箱发送的链接为:

http://www.xxx.com/GetPwd.aspx?q=0x0531387a5a6c1227e4d6ba0ce16dc72e&r=3244166

经尝试,此处未对随机生成的q值进行验证或是验证了但是验证之后未失效,导致可以重复使用,最终只需要修改r为其他用户ID,即可重置其他用户密码。

(6)找回密码的短信验证码可被爆破导致任意账号密码重置

你可能感兴趣的:(web安全)