利用fuzz大法导致的任意用户重置&注册
1、打开Url:http://mym.chinahr.com/account/
点击修改邮箱的时候,会发起一个请求
1 | mym.chinahr.com/account/updateMail?email=only_free%40qq.com |
这里我手贱的修改了为如下的Url
1 | http://mym.chinahr.com/account/updatePhone?mobile=2333333 |
果然,傻人有傻福,居然成功了,那么任意用户注册和任意用户重置就简单了
任意用户注册复现步骤
现在我有2个账号,如下
账号A | 账号B |
---|---|
17777777777 | 18888888888 |
首先我登陆用手机号码17777777777
然后把手机号码修改为18888888888
,如下
然后我现在再用17777777777
注册一个号然后再把手机号码改成13688888888
,那么就可以导致用户注册了,具体步骤如下
登陆A账号修改手机号码为xxxx1
-> 然后A账号会变没 -> 然后再用A账号原先绑定的手机号码注册一个用户 -> 再次修改为其他手机号码 -> A账号又变没 ,依次类推就可以任意用户重置了,而这个写脚本也可以实现的(神通广大的审核大大一定知道的我就不多说了)
任意用户重置复现步骤
我想重置一
18888888888
这个手机号码的用户,我思路是这样的,如下:
首先我拿手机号为
17777777777
的那个号把手机号码修改为18888888888
(访问http://mym.chinahr.com/account/updatePhone?mobile=18888888888
),然后这个时候17777777777
就变成空,然后我再登陆18888888888
的账号,把手机号码修改为18888888888
,然后18888888888
这个账号就不存在了
1、登陆17777777777
,手机号码修改为18888888888
点击Execute
会访问这个Url
,然后手机号码会成功被修改,如下
2、这个时候再把手机号码修改为1
3、测试一下手机号码是否不存在了
任意用户登录复现步骤
其实这个洞不是直接登陆的,而是有一定的利用过程,如下
假设17777777777
是我的攻击目标,并且他这里没有绑定邮箱、微信这些
然后我通过登陆18888888888
后把手机号码修改为17777777777
(访问:http://mym.chinahr.com/account/updatePhone?mobile=17777777777)
ok,然后18888888888
的手机号码就变成17777777777
那个账号了
然后这个时候我们来绑定一下微信和邮箱,如下
然后用户发现登陆密码不对了修改完密码后,我还是可以通过微信或者qq邮箱来登陆&找回他密码,也算一个任意登陆了