1. 业务安全漏洞介绍
IOS 中的业务安全漏洞主要是偏向逻辑漏洞,需要耐心的挖掘,这里我整理了一些我在 IOS 上之前挖掘到的漏洞。
2. 转账处存在逻辑缺陷
2.1 漏洞详情
在攻击者给受害者转账时,将转账的数值设置为负数且受害者账户有相应数值余额时,就可以将受害者的账户转到攻击者账户上。
2.2 利用步骤
抓取转账时的数据包,将转账的数量修改为负数,如下图所示:
查看转账记录,可以发现转的是 -0.0001,由于扣款也是减法,相当于从 A 账户 —0.0001,查看 A 账户的转账记录同样如此,也就是 A 账户反而会得到 +0.0001。
此时查看被转账者 B 的转账记录,为 +-0.0001,也就是从账户 B 的账户里转走了 0.0001。
2.3 漏洞危害
攻击者可以通过修改转账金额为负数将受害者的资产全部转移。
3. 已注册用户枚举
3.1 漏洞详情
账户注册和忘记密码处输入手机号由于没有图形验证码可导致可以进行已注册账户枚举。
3.2 利用步骤
在用户注册处,抓取数据包,对账户参数 vaccount 进行遍历,如果在发送验证码时账号未注册则短信验证码会直接发送。
如果在发送验证码时账号已经注册则响应包会提示该手机号已注册。
3.3 漏洞危害
攻击者可以通过遍历手机号获取到所有已注册的用户,为进一步攻击做准备,如爆破、社工等。
4. 存储型 XSS
4.1 漏洞详情
很多 App 都有留言板或者建议反馈等,这些地方往往存在存储型 XSS。
4.2 利用步骤
直接在反馈处插入 XSS payload,响应包显示插入成功。
查看 XSS 平台,发现后台管理员访问反馈内容后成功触发 XSS。
4.3 漏洞危害
攻击者可通过此漏洞构建钓鱼界面,诱导后端管理员进入钓鱼网站,获取管理后台信息,进入后台进一步操作。
5. 任意用户密码重置
5.1 漏洞详情
在密码找回时图片验证码只是前端校验,且短信验证码为 4 位数,攻击者可以利用这两个问题进行暴力猜解验证码,实现任意用户密码重置。
5.2 利用步骤
忘记密码时抓取数据包,发现验证码可以重复使用,且短信验证码为任意四位数,修改手机为目标手机号,获取验证码后点击提交获取数据包,并对短信验证码参数进行爆破。
爆破得到该用户重置密码的短信验证码
5.3 漏洞危害
攻击者可利用该漏洞重置任意用户的登录密码,获取用户所有权。
6. 任意用户注册
6.1 漏洞详情
在用户注册时短信验证码为 4 位纯数字,且图片验证码可重复使用,攻击者可以利用暴力猜解用户注册时的短信验证码实现任意用户注册。
6.2 利用步骤
在用户注册时输入想注册的手机号,发送短信验证码,点击注册抓取数据包,并对数据包中的短信验证码参数进行爆破。
爆破得到正确短信验证码,回到注册页面填入正确短信验证码即可注册成功。
6.3 漏洞危害
攻击者可以利用该漏洞实现任意用户注册。
7. 登录密码暴力破解
7.1 漏洞详情
登录模块无随机验证机制,如图形验证码、表单签名、短信验证码等,导致登录表单不具备唯一性,可利用自动化工具暴力猜解系统用户密码。
7.2 利用步骤
登录时抓取数据包,对账号密码进行爆破,最终得到正确的密码。
7.3 漏洞危害
登录其他人账户并进行恶意操作。
8. 越权查看聊天记录
8.1 漏洞详情
由于群聊天记录是直接通过 groupid 查询获取到的,且查询接口未对查询人身份进行审核,造成匿名查看群聊天记录问题。
8.2 利用步骤
抓取获取群聊天的数据包,更改 groupId 的值,查看其他群的聊天记录。
再次更改 groupId 的值,可以越权查看其他群聊天内容。
8.3 漏洞危害
可查看其他群聊天记录,获取到其他人的敏感信息等。