No.0
实战过程
首先,下载 XXX APP
打开是这个样子的
这个时候就开着代理,准备测逻辑了
(这里不需要注册,直接手机验证码就可以登录)
经过bp抓包之后发现了这些接口:
但如果点进去看数据包,会发现无论是请求包还是响应包通通全部被加密了
不要灰心!有看到接口中的 encrypt 嘛?
encrypt 翻译过来就是 加密 的意思
那咋办呢?
你既然 encrypt 了,那我就把你删点,不让你 encrypt 咯…
(这里实际上算是找老旧接口了)
功夫不愧有心人,终于让我找到了这么个接口
会返回没被加密的信息啦
依法炮制,我很快就找到下一个可以绕过加密的接口
咦?竟然给提示了?
那就找它的提示补充下参数吧
芜湖!竟然调用成功了
虽然不知道这是干啥的…
后来,我在用另外一个账户测试的时候,发现了一个共同点…
就是每个通过手机验证码注册的账户(该APP仅可使用手机验证码注册)
他们这个数据包里的值都相等…
hPassword 一看就是密码的意思嘛…
可为啥每个账户的密码都一样呢?
难道!!!!
他们使用手机验证码注册的所有账号…
都有一个默认密码?!
于是乎我注销一下,尝试直接使用 hPassword 字段的值进行登陆
发现登陆失败了…
果真是加密后的字符串啊……
不过,如果是大家都一样的默认密码…那一定得好记吧
于是乎,我尝试了几种弱密码来猜默认密码是啥
结果!!手机号/123456 成功登陆进去了
好耶
那这么说的话,我只需要知道用户的账户(手机号)
且他没有更改密码的情况下(该APP并无强制更改密码)
我就可以直接通过 123456 登陆进去!!!(用户是不知道自己的默认密码是123456的)
于是乎为了扩大成果,那肯定得爆一波账户呀
接下来,又遇到了一开始的难题…
在这里,我进行了非常多的尝试…
包括 /ws/pwds/login、/pwds/login、/login ……
都无法成功
直到我看到了这个数据包…
这个数据包是当初通过验证码进行登陆的时候抓到的
我看到了这么一个小小的路径 /sms/
sms 好像是用来发短信进行验证服务的叫法
又想起之前那个路由:
pwds 我感觉就是 password service 的缩写
那尝试把两个结合一下?
我擦!有戏!!!!
然后就尝试了删删请求体里的东西…
发现 commonLoginFormData 是一定要的
mobile 也是一定要的
既然缺密码,那给它补个 password 字段?
嘿嘿,这不搞定?
再加上之前那个任意用户默认密码为123456
我这边只需要爆破手机号,就可以跑出所有已经注册的用户啦
马上丢到 instruder 跑一下
啊?怎么用户量这么少啊
不查不知道,一查吓一跳……
尼玛!出测试范围了…
快跑!!!!!
No.1
原文始发于微信公众号(隐雾安全):一次“惊险”又有趣的APP漏洞挖掘
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论