【漏洞类型】:业务逻辑漏洞
【漏洞级别】:高危
【漏洞描述】:
我的 =》商城=》替换data返回值 =》正常进入兑换界面 =》 地址管理 =》地址删除处可以遍历ptAddressId导致删除任意用户使用的地址,涉及80多w用户地址。
【漏洞URL】:
xxx.top/integralapi/api/outer/points/orders/deletePtAddress?ptAddressId=857677&source=wechat
【复现步骤】:
打开某APP =》 我的 =》福利商城=》替换data返回值 =》正常进入兑换界面 =》地址管理 =》地址删除处存在越权
正常情况下因为彩虹币不够 是不能进入兑换购买界面
但是可以通过修改点击商品时的第一个请求包的返回包的data值,进入正常的兑换流程
将data修改成任意值 最好大一些99999之类的 超过商品价值就行
然后进入兑换界面:
进入商品兑换界面后,商城有地址管理:
然后在地址删除时,可以遍历ptAddressId值,然后越权删除全局用户地址
具体验证:
A账户下有地址 ptAddressId=857964
然后在B账户下,随便删除地址时:
替换ptAddressId的值,将其替换成A账户下的待删除地ptAddressId=857964
然后去A账户查看地址是否被删除:
再回到A账户下 发现ptAddressId=857964的地址被越权删除了
同理因为这里的地址id构造简单,而且是叠加的,所以这里可以直接遍历id,将所有用的地址全部越权删除,涉及到80多W用户地址。
修复方案:
1、限制请求的频率,后端进行用户权限的校验。
2、尝试添加验证码或者是token随机值。
PS:本文仅用于技术讨论与分析,严禁用于任何非法用途,违者后果自负。
EDI安全
扫二维码|关注我们
一个专注渗透实战经验分享的公众号
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论