公众号现在只对常读和星标的公众号才展示大图推送,
建议大家把听风安全设为星标,否则可能就看不到啦!
----------------------------------------------------------------------
0X01 引子
某个风和日丽的下午,hunter刚冲了点积分,准备赶紧找个站点来练练手,翻来看去,找到某个站的登录页面有个忘记密码的地方,成功引起了我的注意,这还不赶紧注册个账号试试看。
0X02 展开说说
一通操作下来,并没有找到有可以利用的弱口令账号,于是乎注册了一个新用户,填下个人信息,这里注册需要验证手机验证码,且不能在数据包中找到返回验证码,所以用的自己手机号
新注册的账号没有赋予登录权限,直接点开忘记密码模块,乱填一个就能发现这里只能填注册成功的用户名或者手机号
拿刚刚注册成功的手机号验证之后确定
发现确定之后直接返回了一串id,这里可以留意下,兴许后面用的到
获取手机验证码,填完之后确定,验证码是对的,验证成功
由于这里需要用真实的手机号来接收验证码,通过校验才能到下一步,设想一下,要是这里能通过我自己的手机号来验证别人的注册账号然后进入下一步,是不是就能直接重置别人的账号?感紧来验证下这个假设。但是问题来了,首先我们要知道有哪些账号,接下来要做的是找到有哪些账号是已经注册成功了的。
回想起前面填写账号处,填的时候就能的得知该账号是否为已注册成功的账号,随便乱填个看下返回的数据包
发现未注册账号这里的值为0,暂且猜测它是状态值,拿一个注册成功的账号来看看,发现这里是1,进而验证了自己的猜想
这个时候想到了利用下已有的常见账号字典来进行爆破,看看有哪些是已经注册过的账号
发现返回长度几乎都是一样的
这里需要用到burp对结果的进一步筛选功能,不能光看返回长度,选择Grep-Match模块,勾选启用功能,添加我们要匹配的内容,使用简单字符串进行匹配,这里我添加了1
果不其然,这不就拿到了,这么多都是已经注册成功的账号
拿第一个chentao这个账号试试,拦截下第一步账号名验证通过之后的包
设置拦截请求的返回,然后发包
因为第二步是验证手机号收到的验证码,这里直接然forward,拦截验证接收验证码的手机号的包
发现页面的校验已经变成了校验自己的手机号了,然后成功获取验证码
然后就能设置新密码了,这里就能直接绕过真实身份的校验达到任意密码修改了
灰常幸运,修改了一个账号密码之后,就能直接登录进系统了
一通翻找之后,能看到该区域内所有登录市区的访问情况
并且能够直接下载单位账号名单以及具体的人员信息!
END
0X03 后记
发现这个漏洞主要还是运气比较好,钻了对方防御措施方面没有完善的空子,这里注意一定要将重置用户与接收重置凭证的手机号/邮箱作一致性比较,需要直接从服务端直接生成手机号/邮箱,不从客户端获取。
就到这吧 感谢各位看官。
原文始发于微信公众号(听风安全):实战|记一次SRC挖掘中任意密码重置的利用
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论