业务逻辑漏洞之支付逻辑漏洞

业务逻辑漏洞之支付逻辑漏洞

  • 一、漏洞挖掘介绍
  • 二、Web漏洞产生的原因
  • 三、业务逻辑简述
  • 四、 常见业务逻辑漏洞的功能点
  • 五、支付逻辑漏洞
    • 5.1、漏洞背景
    • 5.2、产生原因
    • 5.3、测试方法
  • 六、挖到这些漏洞有什么用?

一、漏洞挖掘介绍

漏洞定义:

  • 官方定义:漏洞是在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统。
  • 我的定义:只要可以给厂商带来损失的全都是漏洞。

在这里插入图片描述

  • 常规漏洞:

http://wooyun.2xss.cc/
在这里插入图片描述

二、Web漏洞产生的原因

主要是服务端对客户端发送的请求没有做严格的验证处理,导致客户端可以发起有害的请求,从而导致漏洞产生。

在这里插入图片描述

三、业务逻辑简述

  • 业务逻辑:不同的项目有不同的功能,这些功能需要不同的代码实现,实现这些核心功能的代码就叫业务逻辑。

比如让你实现一个功能,给你两个数,让你获取它的和。你所写的"如何才能获得任意给定的两个数的和"这个程序的实现过程即可
称为业务逻辑处理。

  • 我们可以这样的理解,一个产品的实现,总会有很多逻辑包括在内,比如购物网站,他需要的功能可以分为两个个大类,第一类是前台:包括商品展示、商品分类搜索、商品购买以及个人用户管理、用户注册、用户登录处理、用户个人资料编辑、收获地址管理、订单管理等。第二类就是后台:比如网站后台管理 、商品管理、订单处理、相关反馈处理等。

比如我们用户想要在京东或者当当网买一本书,是不是首先要注册一个账号,注册完成后进行登录,登录后就可以将我们想要买的书加入购物车,然后结算生成订单,之后基于这个订单付款,付完款之后订单就提交成功了。

  • 业务逻辑漏洞:是指开发者/设计者在开发过程中,由于代码逻辑不严或者业务逻辑不严,导致一些逻辑分支不能正常处理或处理错误,而造成的一系列可以被攻击者加以恶意利用的漏洞。

  • 或者说程序员在编写程序时,只考虑了常规的操作流程,即“当在A情况下,就会出现B,此时执行C即可”,但是开发者却没有考虑当用户执行了意料之外的X时会发生什么。这种对于异常情况的欠考虑,最终导致了安全漏洞的产生。业务逻辑漏洞是通过相对合法的方式来达到目的的。当然了这个合法不是说我们可以随意利用这些漏洞去投机取巧犯法,而是这个漏洞它所提交的数据包跟其他比如sql注入、xss等漏洞相比是没有危害性的,不会引起防护设备也就是waf的注意。

  • 业务逻辑漏洞是通过相对合法的方式来达到目的的。当然了这个合法不是说我们可以随意利用这些漏洞去投机取巧犯法,而是这个漏洞它所提交的数据包跟其他比如sql注入、xss等漏洞相比是没有危害性的,不会引起防护设备也就是waf的注意。

四、 常见业务逻辑漏洞的功能点

在这里插入图片描述

漏洞发现方法:确定业务流程—>寻找流程中可以被操控的环节—>分析可被操控环节中可能产生的逻辑问题—>尝试修改参数触发逻辑问题。

五、支付逻辑漏洞

5.1、漏洞背景

随着互联网的发展,生活变得越来越方便,往日需要我们跋山涉水购买的物品,如今只要在网上下个订单就可以送到家中。网上购物给我们带来极大的便利的同时也带来了安全风险,而支付漏洞就是影响我们网上购物的安全风险之一。

5.2、产生原因

开发人员往往会为了方便,直接在支付的关键步骤数据包中直接传递需要支付的金额。而这种金额后端没有做校验,传递过程中也没有做签名,导致可以随意篡改金额提交。只需要抓包看到有金额的参数修改成任意即可。

5.3、测试方法

  • 大米CMS靶场:http://47.109.71.232:10001/
    1、在购买产品过程中修改产品数量、价格;

在进行支付订单的时候,可以修改物品的数量来进行操作,可以通过支付一件的价格购买多件,或者修改成负数进行增加资金。

  • 特殊情况:修改小数点、整数溢出、总商品价格为正

2、在支付时修改总价格或者优惠价格;

利用:抓包修改价格参数的内容,在支付当中,购买商品一般分为三步骤订购、确认信息、付款,在这三个步骤中都有可能存在漏洞,金额可以尝试修改小额或者修改负。

  • 特殊情况:
    1.总商品价格整数溢出
    2.价格小数点溢出

3、订单生成后,编辑订单把A商品的价格改成B商品的价格,实现低价支付。

修改支付对应商品的id:

  • 通过修改商品对应的d号,可以用低价购买高价格的商品。

请求重放:

  • 购买成功之后,继续重放请求,可以让购买的商品一直增加。购买成功之后,会有一个银行对商户网站跳转的过程,如果反复进行操作,有几率会导致商品反复购买和增加,但是不需要付更多的钱。

4、整数溢出。

一般在开发当中,商品的金额都会用int 型来定义,那么 int 的最大值为2147483647,可以尝试修改为2147483648。看是否造成整数溢出,有可能支付状态异常,从而导致支付成功。

5、修改附属优惠/状态

  • 修改优惠券金额
  • 修改积分金额
  • 无限制试用
  • 修改优惠价
  • 优惠券设置错误,出现优惠券叠加
  • 优惠券id遍历

不然一些商品有优惠券,优惠多少多少,那么在支付时抓包,修改这个优惠价就可造成支付问题的产生。

6、提现/充值类型:

  • 提现负数
  • 提现整数溢出
  • 提现多位小数点(假设比如服务器只能识别到0.00你支付了0.049元四舍五入给你充值了0.05元)

六、挖到这些漏洞有什么用?

可以提交到SRC(安全应急响应中心),能够获得相应的赏金

  • SRC平台:https://www.anquanke.com/src
  • 漏洞盒子:https://www.vulbox.com/projects/list
  • 补天:https://www.butian.net/Reward/plan/1

国外赏金平台:

  • intigriti:https://www.intigriti.com/
  • HackerOne:https://hackerone.com/
  • Bugcrowd:https://www.bugcrowd.com/
  • Cobalt:https://cobalt.io/
  • Bountysource:https://bountysource.com/
  • Bounty Factory:https://bountyfactory.io/
  • Coder Bounty:http://www.coderbounty.com/
  • FreedomSponsors:https://freedomsponsors.org/
  • FOSS Factory:http://www.fossfactory.org/
  • Synack:https://www.synack.com/
  • HackenProof:https://hackenproof.com/
  • Detectify:https://cs.detectify.com/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/60452.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网页版Java(Spring/Spring Boot/Spring MVC)五子棋项目(四)对战模块

网页版Java(Spring/Spring Boot/Spring MVC)五子棋项目(四)对战模块 一、约定前后端交互接口1. 建立连接接口2. 针对落子的请求和响应 二、实现前端页面三、实现后端1. 当用户进入房间,更新用户状态 OnlineUserManager…

ProComponent 用法学习

相信很多同学都用过 Ant Design 这一 react 著名组件库,而 ProComponents 则是在 antd 之上进行封装的页面级组件库(指一个组件就可以搞定一个页面)。它同时也是 Ant Design Pro 中后台框架所用的主要组件库。如果你手上有要用 react 开发的中…

valgrind检测内存泄漏

#include <stdio.h> #include <stdlib.h>int main(){int *q (int *)malloc(sizeof(int));*q 1;// int i 1;// if(i 1){// int *p (int *)malloc(sizeof(int));// *p 1;// free(p);// }// free(q)return 0; } 运行查看 valgrind --leak-checkfu…

【学习】若依源码(前后端分离版)之 “ 上传图片功能实现”

大型纪录片&#xff1a;学习若依源码&#xff08;前后端分离版&#xff09;之 “ 上传图片功能实现” 前言前端部分后端部分结语 前言 图片上传也基本是一个项目的必备功能了&#xff0c;所以今天和大家分享一下我最近在使用若依前后端分离版本时&#xff0c;如何实现图片上传…

虹科新闻 | 虹科与Power-MI正式建立合作伙伴关系

近日&#xff0c;虹科与Power-MI正式建立合作伙伴关系&#xff0c;双方就工业预测性维护领域进行深入的交流与合作&#xff0c;未来将共同致力于为亚洲市场提供完整的、更高质量的预测性维护解决方案&#xff0c;解决亚洲客户的工业自动化挑战。 虹科与Power-MI都表示十分期待…

vite跨域配置踩坑,postman链接后端接口正常,但是前端就是不能正常访问

问题一&#xff1a;怎么都链接不了后端地址 根据以下配置&#xff0c;发现怎么都链接不了后端地址&#xff0c;proxy对了呀。 仔细看&#xff0c;才发现host有问题 // 本地运行配置&#xff0c;及反向代理配置server: {host: 0,0,0,0,port: 80,// cors: true, // 默认启用并允…

接口测试过程中常见的接口安全性问题,通用测试点整理归纳

我们日常的接口测试工作主要是验证接口的功能性&#xff08;入参、出参、边界值等&#xff09;&#xff0c;在接口测试过程中遇到的一些接口安全性的问题&#xff0c;整理成了通用的测试点&#xff0c;不一定适用于全部的产品&#xff0c;仅做参考。 一、登录接口校验 验证登…

Android Framework底层原理之WMS的启动流程

一 概述 今天&#xff0c;我们介绍 WindowManagerService&#xff08;后续简称 WMS&#xff09;的启动流程&#xff0c;WMS 是 Android 系统中&#xff0c;负责窗口显示的的服务。在 Android 中它也起着承上启下的作用。 如下图&#xff0c;就是《深入理解 Android》书籍中的…

编织人工智能:机器学习发展历史与关键技术全解析

文章目录 1. 引言1.1 机器学习的定义1.2 重要性和应用场景重要性应用场景 2. 机器学习的早期历史2.1 初期理论与算法感知机决策树 2.2 早期突破支持向量机神经网络初探 3. 21世纪初期的发展3.1 集成学习方法随机森林XGBoost 3.2 深度学习的崛起卷积神经网络&#xff08;CNN&…

validator入门

validator中文文档地址和英文地址 https://docs.jboss.org/hibernate/validator/4.2/reference/zh-CN/html/validator-gettingstarted.html https://docs.jboss.org/hibernate/validator/6.0/reference/en-US/html_single/#preface自定义hibernate-validator校验 工具类Valid…

电视盒子哪个好?文宇数码盘点口碑网络电视盒子排行榜

大家好&#xff0c;欢迎来到文宇数码频道。本期我们要分享的数码产品是电视盒子&#xff0c;电视盒子可以说是家家必备&#xff0c;很多用户在买电视盒子时踩过雷&#xff0c;因此本期我们的主题是电视盒子哪个好&#xff0c;为了结果更客观公正&#xff0c;我们购入了十多款热…

希尔排序——C语言andPython

前言 步骤 代码 C语言 Python 总结 前言 希尔排序&#xff08;Shell Sort&#xff09;是一种改进的插入排序算法&#xff0c;它通过将数组分成多个子序列进行排序&#xff0c;逐步减小子序列的长度&#xff0c;最终完成整个数组的排序。希尔排序的核心思想是通过排序较远距…