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

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

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

以上小程序测试均获取授权,并且客户均已得到修复(仅供学习,请勿恶意攻击)


关于微信小程序如何拦截数据包,笔者在往期的文章均有过讲解,大家可以翻阅往期文章,此处省略抓包环节演示


支付业务逻辑漏洞

问题描述:

应用程序未校验订单数据的取值范围,导致可以修改订单数量、订单金额,通过修改订单金额可以达到0元购的效果,由于现在调用的都是支付接口,所以负值反冲已经不再常见了

测试过程:

首先正常页面如下图所示

图片.png

只需要在生成支付二维码处修改实际支付金额,这样后台会显示原先的350元,但是实际上只需要支付0.01元

图片.png

此时生成支付二维码,页面显示为350,元,但是实际上已经变成0.01元

图片.png

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

图片.png

0元购了家人们,这要是让人逮到可遭老了罪了

风险程度:[严重]

风险分析:

通过篡改订单金额可以达到0元购的效果,造成商家金钱的损失

修复建议:

1.服务器端在生成交易订单时,商品的价格从数据库中取出,禁止使用客户端发送的商品价格。

2.服务器端对客户端提交的交易数据(如商品ID、商品数量、商品价格等)的取值范围进行校验,将商品ID和商品价格与数据库中的数据对比校验,商品数量为大于零的整型数。

3.服务器端在生成支付订单时,对支付订单中影响支付金额的所有因素(比如商品ID、商品数量、商品价格、订单编号等)进行签名,对客户端提交的支付订单进行校验。



任意用户登录漏洞

问题描述:

小程序在登录的时候,仅校验了手机号与手机短信验证码的一致性,并没有校验实际使用的手机号码与openid的关系,缺乏校验,导致可以通过正常使用手机号码接受短信后,修改登录成功的数据包为其他人的手机号码,达到任意用户登录的效果。

测试过程:

使用133********账户登录,登录截图如下

图片.png

当前133用户登录返回信息如下:

图片.png

直接把mobile参数修改成幸运观众的手机号就可以,此处手机号在前面有出信息泄露,可以抓到很多人的手机号码

图片.png

发包即可完成任意用户登录,此处可以看到其他用户的所有数据

图片.png

风险程度:[严重]

风险分析:

攻击者使用正常的登录请求访问系统,而后修改手机号码为其他人的手机号码,即可在未进行任何校验的情况下越权登录任意用户,实现所有功能

修复建议:

建议对用户登录的手机号、用户身份进行多因素验证,将微信id号码与实际登录的手机号码进行严格的校验


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



任意用户注册漏洞

问题描述:

小程序为内部员工专用,注册功能未对外开发,利用此漏洞可直接注册用户且无需审核,暂不排除是否会对已存在的用户的影响,如覆盖账号导致无法登录等。

测试过程:

首先访问公众号员工登录页面,此页面无注册功能,且登录逻辑为员工姓名+工号校验

图片.png

输入任意的姓名和工号,点击登录按钮,此时的用户是不存在的,大家注意LoginSubmit

图片.png

构造注册数据包,注册用户123 工号A101123;此接口实际上是猜的,大家注意打箭头的地方

图片.png

只能发这么点的图了

图片.png


风险程度:【高危】

风险分析:

攻击者可以根据此漏洞越过系统拦截直接注册任意用户并访问内部员工功能。

修复建议:

建议销毁此接口,或对员工注册进行审核。



水平越权漏洞


问题描述:

越权访问,这类漏洞是指应用在检查授权(Authorization)时存在纰漏,使得攻击者在获得低权限用户后,可以利用一些方式绕过权限检查,访问或者操作到原本无权访问的高权限功能。

测试过程:

查看某房产小程序个人房产信息,效果如下图所示

图片.png

拦截数据包发现,此处存在水平越权漏洞,通过修改get传参可以遍历他人房产,并且可以获取他人id、手机号、身份证号码、房屋信息等数据

图片.png

图片.png

风险程度:[严重]

风险分析:

攻击者可以利用越权漏洞访问其本不应该具有权限的敏感数据,如个人身份信息、财务数据、健康记录等,导致隐私泄露。

修复建议:

验证用户权限: 在每个敏感操作之前,对用户进行严格的权限验证。确保用户拥有访问特定资源或数据的权限,且只能访问其授权的内容。


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


相关文章
|
7月前
|
SQL 安全 关系型数据库
接上篇文章,在测试宝塔 WAF 的未授权访问漏洞时无意间还发现了一个 SQL 注入漏洞
接上篇文章,在测试宝塔 WAF 的未授权访问漏洞时无意间还发现了一个 SQL 注入漏洞,品相还不错,可执行任意 SQL 语句。 总之,吃了一惊,一个防 SQL 注入的工具居然也有 SQL 注入漏洞。 请看这段代码
597 9
|
2月前
|
安全 程序员 网络安全
Kali渗透测试:对软件的溢出漏洞进行测试
Kali渗透测试:对软件的溢出漏洞进行测试
42 1
|
3月前
|
安全 Java 应用服务中间件
渗透测试-JBoss 5.x/6.x反序列化漏洞
渗透测试-JBoss 5.x/6.x反序列化漏洞
56 14
|
2月前
|
安全 网络协议 Linux
Kali渗透测试:使用Armitage针对漏洞进行攻击
Kali渗透测试:使用Armitage针对漏洞进行攻击
83 0
|
3月前
|
安全 网络安全 数据安全/隐私保护
渗透测试-Openssl心脏出血漏洞复现
渗透测试-Openssl心脏出血漏洞复现
160 7
|
3月前
|
安全 测试技术 Linux
CentOS7 安装vulhub漏洞测试环境
CentOS7 安装vulhub漏洞测试环境
138 0
|
4月前
|
安全 应用服务中间件 网络安全
Python 渗透测试:漏洞的批量搜索与利用.(GlassFish 任意文件读取)
Python 渗透测试:漏洞的批量搜索与利用.(GlassFish 任意文件读取)
61 11
|
4月前
|
安全 测试技术 网络安全
|
5月前
|
安全 测试技术 网络安全
探索自动化测试:从理论到实践网络防御的盾牌与剑:漏洞解析与加密技术实战
【7月更文挑战第31天】在软件工程领域,自动化测试是确保产品质量和提升开发效率的关键工具。本文将深入探讨自动化测试的核心概念、优势以及面临的挑战,并通过一个具体的代码示例来展示如何在实际项目中实施自动化测试。我们将看到,通过采用恰当的策略和技术,自动化测试不仅能够提高测试覆盖率,还可以缩短反馈周期,从而加速迭代速度。 【7月更文挑战第31天】在数字世界的无垠战场上,网络安全和信息安全是守护数据宝藏的盾牌与剑。本文将深入探讨网络安全的脆弱点,揭示加密技术的奥秘,并唤醒每一位数字时代居民的安全意识。通过代码示例和案例分析,我们将一起穿梭在信息的海洋中,学习如何铸造坚不可摧的防御,以及如何运用高超
85 0
|
6月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的高中信息技术课程在线测试系统附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的高中信息技术课程在线测试系统附带文章和源代码部署视频讲解等
57 6