干货 支付金额类漏洞挖掘技巧总结

前言

支付类逻辑漏洞在漏洞挖掘中是常常出现的问题之一。此类漏洞挖掘思路多,奖励高,是炙手可热的漏洞。此篇文章主要围绕挖掘支付逻辑漏洞时的一些思路分享。

前言:

支付类逻辑漏洞在漏洞挖掘中是常常出现的问题之一。此类漏洞挖掘思路多,奖励高,是炙手可热的漏洞。此篇文章主要围绕挖掘支付逻辑漏洞时的一些思路分享。

支付逻辑漏洞成因:

支付漏洞可能由以下原因造成:

  1. 前端验证不充分:在前端页面上,没有进行足够的验证和限制,使得用户可以通过修改页面元素或发送自定义请求来篡改支付金额、支付类型、支付状态等。

  2. 客户端数据不可信:客户端(如移动应用)在进行支付时,没有对传输的数据进行完整性验证和加密,导致恶意用户可以直接修改数据包中的支付金额、订单号等与订单有关的参数。

  3. 服务器端验证不严格:支付请求在到达服务器端时,没有进行足够的验证和校验,使得攻击者能够更改支付相关参数并绕过服务器端的验证机制。

  4. 不安全的存储和传输:支付金额数据在存储或传输过程中未经适当的加密保护,导致黑客可以窃取或篡改数据。

支付逻辑漏洞挖掘技巧:

在实际漏洞挖掘中,一般最先尝试的就是更改数据包发包内容,可以直接修改支付金额、更改支付状态、更改支付类型、更改提交订单支付的时候其中的订单信息等等,当然也会有一些新奇的功能点可以测试。这些在测试中会遇到的操作可以分为以下几类:

一、更改支付金额

在支付流程中,可以修改支付价格的步骤有很多,包括订购、确认信息、付款等。在涉及到价格的步骤中都可以尝试修改,如果网站在某一环节存在逻辑上的漏洞,就可以利用该漏洞对支付价格进行修改。可以直接修改提交订单中的价格字段,一般可尝试0.01,1.00,1等

二、更改支付状态

在测试中有的时候订单得支付状态是由用户提交订单时的某个数据包参数决定的,服务端通过支付状态判断订单支付与否,这时我们可以尝试找到这个参数(可以通过正常支付订单的数据包进行对比),对支付状态进行修改。或者还有一种情况是通过检查订单是否支付,这个时候可以通过抓取已支付的订单数据包将其中的订单编号改为未支付的编号,实现绕过。

1、直接修改为已支付状态

2、修改未支付的订单号为已支付订单号

三、修改支付类型

通常在提交订单付款时,这里的type一般是对支付方式的判断,可能会存在开发人员测试的时候遗留的无需支付的type值,根据支付方式判断支付与否。可以通过fuzz特定值去实现绕过。比如比较常见的值0(这里需要结合实际进行测试不同的处理方式type值不同),可以实现不需要付款订单就会自动生成。

四、更改订单信息

服务端只检查支付是否完成,并没有确认订单金额与银行支付金额是否相同,过分信任客户端提交的数据。此时可以通过替换支付订单号、更换商品id的方式,来完成花少钱买更贵的东西。同时生成两个订单号,一个贵的一个便宜,首先支付便宜的,银行往回返回的时候,替换订单号,然后就可以完成两个订单的同时支付。

常见位置在生成订单、生成支付链接等。

1、修改商品编号

直接在生成的订单中替换商品编号。

2、修改订单号

将金额不同的订单进行替换,可以支付一个金额较少的订单,然后将订单号修改为金额较大的订单,少付实际金额。

3、越权使用他人优惠券、越权使用他人积分等

五、更改数量实现优惠支付

支付金额是由购买数量乘以商品单价决定的,这时我们在数据包中修改购买数量,将其修改为负数或者小数,如果站点后台对此没有进行过滤,就有可能存在支付漏洞。

1、将正常的数量值修改至最小值0.01,可以实现低价购买。比如:原价300修改修量为0.01后实付金额变为3。

2、未对负数做检验的还可以将数量改为负数。(这里需要注意,因为后端大部分会校验不允许实付金额小于0或者0.01等,所以有的时候要想实现订单成功生成需要结合实际修改价格)

生成订单时有参数表示商品数量,修改为-1

修改数量为-1后会发现,此时金额为负数。

在提交订单支付的时候,为保证支付成功需要修改金额。

3、对数量没有做负数校验的时候也可以巧用负数抵消实现0元购

在计算价格时,没有对负数进行验证,通过修改某个商品数量为-1实现与1的抵消实现0元购。

同时购买两件商品,修改两件商品其中价格低的商品的金额为负数,实现价格的抵消,低价购买商品。

4、手动增加订单中商品相关的多个参数以达到少付多买的目的。

有的时候在提交订单时抓取数据包可以看到只有一套商品的信息,尝试多添加几套同样的参数订单是否会有变化。

尝试在提交订单的时候多添加几个此类参数

提交订单实际支付金额未变仍是一个商品的价格,但是实际套餐已经变成了四个。

六、重复支付,突破限购

在支付系统中,服务端没有做好相关验证,比如订单状态被错误更新或者未更新,未对订单多重提交进行校验。那么就可以并发订单实现优惠订单多次提交。需要注意的是这里有的时候会根据实际支付订单判断,并发了多个订单也可能只有一个优惠订单可以正常支付。

并发订单,多台设备同时提交优惠订单。

常见于限购,一个账号仅许购买一次等

1、限制一个优惠订单时直接并发生成多个优惠订单

2、使用多台设备、多个浏览器、多种支付方式(wx、支付宝等)购买优惠订单

常见于购买会员,会员第一个月往往会有优惠价。生成一个优惠订单后不支付,打开多个设备或者虚拟器设备,同时提交生成优惠订单,再分别支付,有的时候会发现会员截至日期顺延,突破限制以优惠价格购买会员。

3、退款处并发。退款的时候可以发起同一订单多次退款,达到多退款的目的。

七、优惠券多次使用

常见于涉及优惠券的订单中。可以在提交订单的时候修改发包中优惠券的值尝试使用大额优惠券,或者按照原数据包中优惠券的构造参数手工添加几张优惠券,达到优惠券叠用的目的。有优惠券面值参数的也可以直接修改数据包中优惠券的面值。

1、在一个订单中叠加使用优惠券

2、修改优惠券标识,尝试使用其他商品中的大额优惠券

3、直接修改优惠券的面值。实际金额计算会扣除优惠的部分,此时修改优惠券面值可以实现低价购买。

八、遍历隐藏或者下架优惠id获取优惠链接

漏洞常见位置:会员处、商品处(隐藏商品,已下架商品,开发测试低价商品等)

1、遍历隐藏优惠券

一般会有一些开发时测试的大额优惠券,或者已经过期下架的优惠券,通过遍历可以被使用。

2、遍历商品id从而fuzz到已下架的商品

九、利用小数点精度四舍五入

0.019=0.02(比如充值0.019元,第三方支付截取到分也就是0.01元,但是系统四舍五入为0.02)。

文章来源: https://forum.butian.net/share/2778``文章作者:中铁13层打工人``如有侵权请联系我们,我们会进行删除并致歉

**★
**

**付费圈子
**

欢 迎 加 入 星 球 !

代码审计+免杀+渗透学习资源+各种资料文档+各种工具+付费会员

进成员内部群

星球的最近主题和星球内部工具一些展示

有很多小伙伴私信问我怎么学?怎么挖漏洞?怎么渗透?**

较合理的途径应该从漏洞利用入手,不妨分析一些公开的 CVE 漏洞。很多漏洞都有比较好的资料,分析研究的多了,对漏洞的认识自然就不同了,然后再去搞挖掘就会易上手一点!

什么是漏洞挖掘

漏洞挖掘是指通过分析软件、系统或网络中存在的安全漏洞来发现并利用这些漏洞。漏洞挖掘是信息安全领域的一项重要工作,可以帮助企业和组织提高系统的安全性,避免黑客攻击和数据泄露。

漏洞挖掘的流程一般可以概括为以下几个步骤:

图片

确定目标:确定要挖掘的软件或系统。这可能是一个应用程序、操作系统、网络设备或其他系统。

收集信息:收集有关目标的信息,包括架构、协议、版本和配置等。这些信息可以通过互联网搜索、手动扫描、自动化工具和其他途径获得。

分析漏洞:通过手动和自动化技术进行漏洞分析,识别潜在的漏洞类型和攻击面。漏洞类型可能包括缓冲区溢出、SQL 注入、跨站点脚本、文件包含、代码注入等等。

验证漏洞:验证已经识别的漏洞。这通常涉及到构建漏洞利用代码,并尝试在目标系统上运行以确定漏洞是否存在。

编写报告:对于已经验证的漏洞,需要编写漏洞报告。报告应该包括漏洞的描述、影响、利用难度和建议的修复方法等。

报告漏洞:将漏洞报告发送给目标系统的所有者或运营者。通常,这些信息将发送给该系统的安全团队或责任人。

跟踪漏洞:跟踪漏洞的修复进度,并监视其状态。如果漏洞得到修复,可以对修复进行验证以确保漏洞已被彻底解决。

需要注意的是,漏洞挖掘是一项需要长期持续学习和实践的工作。要成为一名优秀的漏洞挖掘者,需要不断学习新的技术和方法,并保持良好的思维习惯和创新能力。

学习漏洞挖掘的正确顺序

当然,学习漏洞挖掘之前,需要掌握以下几个方面的内容:

在这里插入图片描述

编程语言和计算机基础知识

在漏洞挖掘过程中,挖掘者需要编写代码来验证和利用漏洞,因此需要至少掌握一种编程语言,如 C、Python、Java 等。同时,还需要了解计算机的基础知识,例如计算机系统的组成结构、操作系统的原理、计算机网络的基本概念、数据库的工作原理等。如果没有这方面的基础知识,就很难理解漏洞挖掘中所需要的各种技术和工具。

安全基础知识

漏洞挖掘是一项安全工作,因此需要掌握一些安全基础知识,例如 Web 安全、网络安全、应用程序安全、二进制安全等。建议挖掘者先学习一些基础的安全知识,例如 OWASP Top 10 漏洞、常见的网络攻击技术和漏洞类型等,这可以帮助挖掘者更好地理解漏洞挖掘中所面临的问题和挑战。

漏洞挖掘工具

学习漏洞挖掘需要掌握一些常用的漏洞挖掘工具,例如 Burp Suite、Metasploit、Nmap、Wireshark、IDA 等。这些工具可以帮助挖掘者加速漏洞挖掘的过程,同时也能帮助挖掘者深入理解漏洞的原理和产生的原因。例如,Burp Suite 可以帮助挖掘者拦截和修改 HTTP 请求,Metasploit 可以帮助挖掘者构造攻击载荷等。

学习漏洞挖掘技巧和方法

学习漏洞挖掘需要了解一些常用的技巧和方法,如 Fuzzing、代码审计、反向工程、漏洞利用等。这些技巧和方法能够帮助挖掘者更快速地发现漏洞,并且深入理解漏洞的原理和利用方式。例如,Fuzzing 可以帮助挖掘者通过自动生成大量的输入数据,来测试程序是否存在漏洞,代码审计可以帮助挖掘者通过分析代码来发现漏洞等。

总的来说,学习漏洞挖掘需要综合掌握多方面的知识,包括编程、计算机基础知识、安全基础知识、漏洞挖掘工具以及漏洞挖掘技巧和方法。建议先从基础知识入手,逐步深入学习,不断实践,并在实践中发现和解决问题,才能逐渐成为一名优秀的漏洞挖掘者

五. 写在最后

希望这篇文章在可以帮助你解开一些对于漏洞挖掘的谜团。在学习和研究漏洞挖掘的过程中遇到困难并感到不知所措是很正常的。不过学习的过程就是这样,只有不断的去尝试才会进步。祝你在漏洞挖掘的路上走的越来越远。

《网络安全零基础入门+进阶学习资源包》全套学习资料,需要扫码领取哦!
在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

网络安全技术库

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值