敏感信息泄露结合验证码爆破利用

阅读本文大概需要 1.4 分钟

一个朋友开发的 APP,让我有空帮忙看一下,于是我下载下来玩了一下。

电脑开启 Charles,手机设置好代理,开始抓包。

进入首页,看到一个用户发的内容。

点进内容,同时查看抓取的请求。

查看请求内容详情的接口,发现有一个参数 id,一般这种地方都存在 sql 注入。拿 sqlmap 跑了一下,结果并不存在注入。

不管这个了。点击发布者头像,进入用户个人主页,同时查看抓包内容。

没想到居然返回了该用户的手机号!

手机号也就是对方的账号,拿到了账号就可以干很多事了,比如爆破密码。

但是爆破密码太麻烦,主要还得看运气。

这时想起我登录的时候看到这个 APP 是支持验证码登录的。

拿自己手机号试了一下,发现验证码只有 4 位数,并且 15 分钟内有效。

4 位数的验证码,每一位都只能是 0 - 9,也就是 10 种可能。组合起来就是 10^4 也就是 10000 种可能。

只要接口不限制请求频率,且不限制失败次数的话,15 分钟内是完全可以爆破出正确验证码的。

所以先来验证一下接口是否存在限制。用 Charles 的请求重发功能,连续重发请求。

试了十几次,依旧正常响应,所以应该不存在限制。

那么接下来就该 Burp Suite 上场了。

打开 Burp Suite,直接点击 Intruder,并在 Target 里填入目标地址。

将 Charles 抓取的请求粘贴到 Positions 中,并设置好要替换的变量。

设置好 Payloads,使用 0000 - 9999 之间的随机数。最多 4 位,最少也 4 位,无小数,按顺序逐一递增。

接下来就可以开始爆破了,不过在此之前还得先让系统生成一条验证码。

回到 APP,输入目标手机号,点击发送验证码,提示验证码发送成功。

不过有一点不好的是,这样对方就会收到一条验证码短信。要是敏感一点的人,可能就会猜到有人在尝试登录他的账号了。

继续 Burp Suite,点击 Start attack 开始攻击,等待所有请求完成。

执行完成,查看记录。成功得到正确验证码为 2463

使用该验证码进行登录,成功以该用户身份进入 APP。

和朋友简要说了一下情况,然后他请我喝了一杯星巴克。

就先这样。


版权声明:本文为pentestnotes原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。