任意用户密码重置的10种常见姿势

2017-09-23  本文已影响0人  流弊的小白

来源:
任意用户密码重置的10种常见姿势
整理课件资料

1 验证码不失效

image.png
POST /Account/CheckYQCode HTTP/1.1
Host: www.xxxx.cn
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0
Accept: */*
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
http://www.xxxx.cn/userCenter/toForgetPsdPage.html?mobile=
Content-Length: 11
Cookie: ASP.NET_SessionId=30jfruwn22h2xng3ahhzo2jx
Connection: close YQCode=1234

得到正确的验证码是1059然后到网站上输入验证码跳转到输入新密码的页面完成重置密码

image.png

2验证码直接返回

3.验证码未绑定用户

image.png image.png

首先使用自己的手机号接收验证码然后输入自己手机号接收到的验证码,点击下一步并拦截数据包最后替换数据包里的目标手机号,然后发包

image.png

这个案例也是验证码未绑定用户延伸一下,有时候测试会碰到这种,我们发现用户名被加密了,我们又无法得知加密算法,怎么办?大部分这种都不需要知道加密算法,比如这个例子,得到的liuyy的加密后的值是80e688602c4b11e66320c421e3b71ef2,那么我们就可以直接用这个keycode了

image.png

步骤是一样的,输入我们的用户名和收到的验证码,然后把我们的keycode替换为liuyy的那个keycode,这样就可以重置liuyy的密码了。(漏洞原因还是是判断了验证码是否正确,而没有判断该验证码是否跟该用户匹配。)

4.修改接收的手机或邮箱

image.png image.png

点击找回密码,首先我们输入zhangwei,然后点击获取验证码,这个时候把手机号改为我们自己的号码,输入我们自己的号码和验证码,成功跳到重置密码的页面,密码重置成功

5本地验证的绕过

image.png image.png

输入手机号13888888888,输入验证码123456,验证码错误的时候,返回包返回的是0

image.png

这里我们所做的就是把0修改为1,可以借工具修改返回包,我们把0改为1,然后查看页面,成功跳转到修改密码的页面,输入新密码即可修改用户13888888888的密码

6跳过验证步骤

image.png image.png image.png

使用账户wangshuai,点击获取验证码,然后补齐下面的链接https://xxx/page/login/veifyAccess.html?username=wangshuai&email=wangshuai@xxx.com.cn,访问后即可直接重置该用户的密码

7未校验用户字段的值

image.png

8修改密码处id可替换

image.png image.png

点击立即提交,得到右边的数据包,测试发现修改id为5,就可以把对应的用户密码修改为123456,没有对用户的原始密码判断,也没有判断id是否属于该用户。8.修改密码处id可替换

image.png

成功修改id为5的用户密码为123456,而且可以通过遍历id修改所有用户的密码

9.cookie值的替换

image.png image.png image.png

到第一步去获取验证码的时候,点击下一页,可以获取到该用户wangshuai对应的内容Cookie: JSESSIONID=E1AC27A7302C03C9432DE2254B99311A

10.修改信息时替换字段值

image.png image.png image.png

view-source:https://www.xxx.com/ua/employee/forUpdate.do查看下这个页面的源代码,找到了一个参数loginId,这个参数是对应用户身份的而我们发现 上面的数据包里没有这个参数,那么我们是否可以自己添加上去呢?

image.png image.png

添加字段loginId,并且把值修改为他人的用户,发包返回修改成功这样我们就成功的把用户871XXXXXX的密码改为了跟我们密码相同的值

上一篇 下一篇

猜你喜欢

热点阅读