打开网易新闻 查看精彩图片

打开网易新闻 查看精彩图片

前言:

小星在测试某次业务时,由于数据包中的参数被加密且存在sign,导致无法直接测试逻辑问题。经过尝试多种思路,小星最终成功完成了逻辑漏洞的测试。特此记录。

1. 当尝试访问该业务链接时,提示无法获取到手机号码,需要通过使用手机热点来实现获取。由此推断,该操作可能是通过消耗手机数据流量来获取手机号码的。

打开网易新闻 查看精彩图片

2. 改换成使用手机热点访问之后,成功自动获取到了手机号码。

打开网易新闻 查看精彩图片

3. 在点击验证号码状态后,获取到了名为“qryUserBaseInfoByPhoneNo”的数据包接口。分析该数据包发现,其中的参数已经经过解密处理,并且存在sign校验。然而,该数据包的返回包并没有提供太多有用的信息。

打开网易新闻 查看精彩图片

4. 继续释放下一个数据包,获取到了名为“checkUserCheat”的数据包。同样,该数据包中也存在sign校验。分析返回结果,显示不存在该用户。

打开网易新闻 查看精彩图片

5. 小星考虑到这是运营商的业务,很可能是只有该省的手机号码才能获取到用户的数据。然而,数据包存在sign校验,无法通过修改数据包来进行越权测试。

6. 为了解决这个问题,小星尝试了在浏览器的存储中修改参数“wx_mobile”的值,将其修改为该省运营商的手机号码。

打开网易新闻 查看精彩图片

7. 刷新浏览器并再次点击验证号码,同时进行抓包操作。

此次,数据包中的参数“mobile”发生了变化,而且返回包中存在数据,返回了该用户的开卡事件、密码、套餐等信息。越权操作成功。

根据这些信息,可以推测业务逻辑应该是从浏览器存储中读取手机号码,并对手机号码进行加密后传递给服务端以获取数据。

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片