newbee-ltd / newbee-mall

🔥 🎉newbee-mall是一套电商系统,包括基础版本(Spring Boot+Thymeleaf)、前后端分离版本(Spring Boot+Vue 3+Element-Plus+Vue-Router 4+Pinia+Vant 4) 、秒杀版本、Go语言版本、微服务版本(Spring Cloud Alibaba+Nacos+Sentinel+Seata+Spring Cloud Gateway+OpenFeign+ELK)。 前台商城系统包含首页门户、商品分类、新品上线、首页轮播、商品推荐、商品搜索、商品展示、购物车、订单结算、订单流程、个人订单管理、会员中心、帮助中心等模块。 后台管理系统包含数据面板、轮播图管理、商品管理、订单管理、会员管理、分类管理、设置等模块。
https://item.jd.com/12890115.html
GNU General Public License v3.0
11.1k stars 2.71k forks source link

用户信息更新存在横向越权 #76

Closed BACMiao closed 2 years ago

BACMiao commented 2 years ago

您好,我们对您的项目源码进行分析,发现在用户信息更新模块内存在的横向越权的情况,可以通过修改请求中的userId使得不需要密码验证的情况下直接登陆别的用户。

相关版本:

1f2c2dfy 提交版本(10月28日)

横向越权行为源码位置:

ltd.newbee.mall.controller.mall.PersonalController下的updateInfo函数 image

ltd.newbee.mall.service.impl.NewBeeMallUserServiceImpl下的updateUserInfo函数 image

由于mallUser.getUserId是用户可控的,并且逻辑上缺少校验机制,因此在红色方框标记的地方存在横向越权的行为,可以通过修改用户的Id获取直接使用别的用户登陆。

横向越权漏洞复现:

使用工具为BurpSuite

  1. 登陆账户:测试用户3,该用户的订单为空: image

image

  1. 修改个人信息并提交: image

  2. 使用BurpSuite拦截该请求并篡改userId后发送该请求: image

  3. 现在用户:十三,不需要用户登陆验证,直接可以冒用别的用户身份和修改相关信息和订单: image image

ZHENFENG13 commented 2 years ago

收到,近期会处理掉。