当前位置: 首页 > news >正文

关于近期小程序测试的常见漏洞演示

本章节将为大家介绍一下小程序常见的漏洞的展示案例,包括支付业务逻辑漏洞、任意用户登录漏洞、水平越权漏洞等高危漏洞。

以上小程序测试均获取授权,并且客户均已得到修复(仅供学习,请勿恶意攻击)​
关于微信小程序如何拦截数据包,笔者在往期的文章均有过讲解,大家可以翻阅往期文章,此处省略抓包环节演示​

支付业务逻辑漏洞

问题描述:
应用程序未校验订单数据的取值范围,导致可以修改订单数量、订单金额,通过修改订单金额可以达到0元购的效果,由于现在调用的都是支付接口,所以负值反冲已经不再常见了
测试过程:
首先正常页面如下图所示
在这里插入图片描述
只需要在生成支付二维码处修改实际支付金额,这样后台会显示原先的350元,但是实际上只需要支付0.01元
在这里插入图片描述
此时生成支付二维码,页面显示为350,元,但是实际上已经变成0.01元
在这里插入图片描述

第一个009的图忘记保存了,然后又搞了一次,0011,凑合看吧​

在这里插入图片描述
0元购了家人们,这要是让人逮到可遭老了罪了​
风险程度:[严重]
风险分析:
通过篡改订单金额可以达到0元购的效果,造成商家金钱的损失
修复建议:
1.服务器端在生成交易订单时,商品的价格从数据库中取出,禁止使用客户端发送的商品价格。
2.服务器端对客户端提交的交易数据(如商品ID、商品数量、商品价格等)的取值范围进行校验,将商品ID和商品价格与数据库中的数据对比校验,商品数量为大于零的整型数。
3.服务器端在生成支付订单时,对支付订单中影响支付金额的所有因素(比如商品ID、商品数量、商品价格、订单编号等)进行签名,对客户端提交的支付订单进行校验。

任意用户登录漏洞

问题描述:
小程序在登录的时候,仅校验了手机号与手机短信验证码的一致性,并没有校验实际使用的手机号码与openid的关系,缺乏校验,导致可以通过正常使用手机号码接受短信后,修改登录成功的数据包为其他人的手机号码,达到任意用户登录的效果。
测试过程:
使用133********账户登录,登录截图如下
在这里插入图片描述
当前133用户登录返回信息如下:
在这里插入图片描述
直接把mobile参数修改成幸运观众的手机号就可以,此处手机号在前面有出信息泄露,可以抓到很多人的手机号码
在这里插入图片描述
发包即可完成任意用户登录,此处可以看到其他用户的所有数据
在这里插入图片描述
风险程度:[严重]
风险分析:
攻击者使用正常的登录请求访问系统,而后修改手机号码为其他人的手机号码,即可在未进行任何校验的情况下越权登录任意用户,实现所有功能
修复建议:
归根结底该漏洞实际为水平越权漏洞引起的,建议对用户登录的手机号、用户身份进行多因素验证,将微信id号码与实际登录的手机号码进行严格的校验

上述案例主要技术手法为,通过修改返回数据包来实现任意用户登录的目的,除此外,笔者在测试发现,某小程序还可以通过修改请求数据实现任意用户登录,但是客户没有修复成功,所以此处不进行展示学习。

任意用户注册漏洞

问题描述:
小程序为内部员工专用,注册功能未对外开发,利用此漏洞可直接注册用户且无需审核,暂不排除是否会对已存在的用户的影像,如覆盖账号导致无法登录等。
测试过程:
首先访问公众号员工登录页面,此页面无注册功能,且登录逻辑为员工姓名+工号校验
在这里插入图片描述
输入任意的姓名和工号,点击登录按钮,此时的用户是不存在的,大家注意LoginSubmit​
在这里插入图片描述
构造注册数据包,注册用户123 工号A101123;此接口实际上是猜的,大家注意打箭头的地方
在这里插入图片描述
登录后的小图,保命只能发这么多
在这里插入图片描述
风险程度:【高危】
风险分析:
攻击者可以根据此漏洞越过系统拦截直接注册任意用户并访问内部员工功能。
修复建议:
建议销毁此接口,或对员工注册进行审核。

水平越权漏洞

问题描述:
越权访问,这类漏洞是指应用在检查授权(Authorization)时存在纰漏,使得攻击者在获得低权限用户帐后后,可以利用一些方式绕过权限检查,访问或者操作到原本无权访问的高权限功能。
测试过程:
查看某房产小程序个人房产信息,效果如下图所示
在这里插入图片描述
拦截数据包发现,此处存在水平越权漏洞,通过修改get传参可以遍历他人房产,并且可以获取他人id、手机号、身份证号码、房屋信息等数据
在这里插入图片描述
在这里插入图片描述

风险程度:[严重]
风险分析:
攻击者可以利用越权漏洞访问其本不应该具有权限的敏感数据,如个人身份信息、财务数据等,导致隐私泄露。
修复建议:
验证用户权限: 在每个敏感操作之前,对用户进行严格的权限验证。确保用户拥有访问特定资源或数据的权限,且只能访问其授权的内容。

还有一些稀奇古怪的越权,就不展示了,总之一句话,像这种没做什么加密的小程序,只要细心都可以测出来东西,没什么难点

http://www.lryc.cn/news/159796.html

相关文章:

  • 磐基2.0部署apisix集群
  • Python requests爬虫豆瓣图片返回数据为空。
  • 【Spring事务的实现原理】
  • 摆动输入连杆夹持机构
  • C++——类与对象(下篇)
  • stm32 freeRTOS lwip TCP快速发送,内存泄露问题
  • Ei、Scopus双检索 | 2024年第三届人工智能与机器学习前沿国际会议(FAIML 2024)
  • win10环境下搭建QT+opencv
  • React16、18 使用 Redux
  • 【Python】Python运算符/部分函数对应的双下划线魔法方法
  • Macs Fan Control 1.5.16 Pro for mac风扇调节软件
  • 某技术公司技术二面面试题总结
  • 初试小程序轮播组件
  • Centos7 Yum安装PHP7.2
  • 2020年09月 C/C++(三级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • 30天入门Python(基础篇)——第2天:Python安装(保姆级)与IDE的认识与选择+详细安装教程
  • 软件测试/测试开发丨ChatGPT:带你进入智能对话的新时代
  • logback/log4j基本配置和标签详解
  • 雅思 《九分达人》阅读练习(二)
  • [论文笔记] Gunrock: A High-Performance Graph Processing Library on the GPU
  • A Guide to PriorityQueue
  • Jenkins教程—构建多分支流水线项目
  • 【vxe-table】@enter.keyup.native实现在列表中回车光标向右移动聚焦及vxe-table的一些方法的使用(具体实现+踩坑篇)
  • 科技资讯|苹果Vision Pro获得被动冷却系统及数字表冠控制界面专利
  • 【悬溺】Flyway的纯爱时刻
  • Linux权限介绍
  • git:一个本地仓库绑定多个远程的方法以及遇到的问题
  • 如何将WPS设置为默认的办公软件
  • css 文本溢出隐藏,显示省略号
  • 构建普适通用的企业网络安全体系框架