微同商城小程序越权漏洞分析

微同商城小程序越权漏洞分析

去年八月份挖的,已获得CNVD编号,近期准备跳槽决定拿出来水一下。

项目介绍

微同商城是Gitee平台上建站系统中排名第一的开源微信小程序商城(前后端开源:uniapp+Java),拼团、秒杀、优惠券、积分购物、直播卖货、分销等功能。

项目地址

http://fly2you.cn/
https://gitee.com/fuyang_lipengjun/platform

环境搭建:

部署方案1:后台:http://doc.fly2you.cn/start
部署方案2:微信小程序+后台:https://mp.weixin.qq.com/s/leAe8mYv46AcUU8Bcn_ULg

部署+测试工具:
后台:idea+mysql+redis+tomcat
前台:微信官方开发者工具+postman

注意事项:
运行小程序需要配置platform-admin\src\main\resources\dev/platform.properties文件中的wx.appId、wx.secret、wx.mchId(支付功能需要)
涉及小程序测试账号的申请参考:https://mp.weixin.qq.com/

漏洞复现

缺陷代码位置:platform-api\src\main\java\com\platform\api\ApiOrderController
缺陷方法:confirmOrder
代码审计过程中,发现微信小程序中用户确认收货方法confirmOrder存在越权漏洞。越权漏洞源于用户确认收货的方法中涉及订单的主键orderId传递到了前台并且可控,缺陷代码如下:
在这里插入图片描述

跟进orderService.queryObject和orderService.update方法,发现未校验传入的orderId是否属于当前登录用户本身,因此存在越权漏洞。
在这里插入图片描述

1、使用微信开发者工具运行小程序,开启调试器。
在这里插入图片描述

2、进入 我的—>订单列表
在这里插入图片描述

3、点击待收货的订单,进入订单详情页面,再点击确认收货
在这里插入图片描述

4、刚才提到开启了调试器,可获取到确认收货方法的请求confirmOrder,如下
在这里插入图片描述

5、点击confirmOrder,右键选择 Copy - Copy as cURL (bash)
在这里插入图片描述

6、打开Postman(测试工具),在Postman 中选择 File—>Import —>Paste Raw Text,将复制的 cURL bash 命令粘贴进去,点击Continue再点击import完成导入。
在这里插入图片描述

7、选择Body,修改orderId的VALUE为20(非当前登录用户的)

备注1:当前小程序登录用户为测试员1号,为了证明越权漏洞的存在,将orderId的值替换为其他用户的,若执行成功,则证明漏洞存在。
备注2:本项目数据库nideshop_order表中默认只有一条id为20的数据,下图测试员1号的数据需要自己添加进去。
在这里插入图片描述
在这里插入图片描述

8、点击Send,Response返回确认收货成功。
在这里插入图片描述

9、登录后台管理系统,发现发货状态为已收货,越权漏洞复现完成!

在这里插入图片描述

修复建议

增加权限校验,即判断confirmOrder方法中传递的orderId是否属于当前登录用户。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
水平越权漏洞是一种安全漏洞,指的是攻击者通过修改或伪造请求参数、会话标识或其他身份验证机制,以获取未经授权的访问权限或执行特权操作。以下是水平越权漏洞的成因和处置建议: 成因: 1. 不恰当的身份验证和授权机制:系统可能存在缺陷的身份验证和授权机制,未正确验证用户的权限或未正确限制用户的操作范围。 2. 不安全的会话管理:会话标识可能易于猜测、被劫持或未正确管理,导致攻击者能够访问其他用户的会话数据或执行特权操作。 3. 缺乏输入验证和过滤:未正确验证和过滤用户输入,攻击者可以通过修改请求参数实现越权操作。 处置建议: 1. 实施严格的身份验证和授权机制:确保系统正确验证用户身份和权限,并根据用户的权限限制其操作范围。 2. 安全的会话管理:使用随机、复杂且不易预测的会话标识,并确保会话标识在传输和存储过程中得到适当的保护。 3. 输入验证和过滤:对用户输入进行严格验证和过滤,确保只接受有效和预期的输入,并防止攻击者通过修改请求参数来实现越权操作。 4. 最小特权原则:在授权用户时,应遵循最小特权原则,只授予用户完成所需任务所需的最低权限级别。 5. 定期安全审计:对系统进行定期的安全审计,发现和修复可能存在的水平越权漏洞。 6. 持续安全培训和意识提高:教育开发人员、管理员和用户关于水平越权漏洞的风险和防范措施,增强他们对安全问题的意识。 通过以上措施,可以有效减少水平越权漏洞的风险,并提升系统的安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值