前言:
小星在测试某次业务时,由于数据包中的参数被加密且存在sign,导致无法直接测试逻辑问题。经过尝试多种思路,小星最终成功完成了逻辑漏洞的测试。特此记录。
1. 当尝试访问该业务链接时,提示无法获取到手机号码,需要通过使用手机热点来实现获取。由此推断,该操作可能是通过消耗手机数据流量来获取手机号码的。
2. 改换成使用手机热点访问之后,成功自动获取到了手机号码。
3. 在点击验证号码状态后,获取到了名为“qryUserBaseInfoByPhoneNo”的数据包接口。分析该数据包发现,其中的参数已经经过解密处理,并且存在sign校验。然而,该数据包的返回包并没有提供太多有用的信息。
4. 继续释放下一个数据包,获取到了名为“checkUserCheat”的数据包。同样,该数据包中也存在sign校验。分析返回结果,显示不存在该用户。
5. 小星考虑到这是运营商的业务,很可能是只有该省的手机号码才能获取到用户的数据。然而,数据包存在sign校验,无法通过修改数据包来进行越权测试。
6. 为了解决这个问题,小星尝试了在浏览器的存储中修改参数“wx_mobile”的值,将其修改为该省运营商的手机号码。
7. 刷新浏览器并再次点击验证号码,同时进行抓包操作。
此次,数据包中的参数“mobile”发生了变化,而且返回包中存在数据,返回了该用户的开卡事件、密码、套餐等信息。越权操作成功。
根据这些信息,可以推测业务逻辑应该是从浏览器存储中读取手机号码,并对手机号码进行加密后传递给服务端以获取数据。
本公众号云息信安所提供的信息以及工具仅供安全测试人员用于授权测试,禁止用于未授权测试,请勿非法使用!!!造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号云息信安及作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!
原文始发于微信公众号(云息信安):【漏洞挖掘】业务逻辑漏洞案例剖析
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论