浅谈——业务逻辑漏洞

article/2025/8/21 4:55:54

目录

  • 什么是业务逻辑漏洞
  • 产生原因
  • 脑图
  • 有哪些应用场景?哪些危害?
  • 越权
  • 支付漏洞
  • 靶机案例
    • 修改支付金额
    • 密码找回绕过
    • 越权
  • 防御方式
  • 参考

在这里插入图片描述

| 提示📝:

“业务逻辑"一词仅指定义应用程序操作方式的一组规则。由于这些规则并不总是与企业直接相关,因此相关的漏洞也称为"应用逻辑漏洞"或简单的"逻辑缺陷”。

什么是业务逻辑漏洞

业务逻辑漏洞是:应用程序在设计和实施的时候存在缺陷,允许攻击者诱发意外行为,像是设计的方案被人钻了空子。

通俗理解就是:在编写程序时,只考虑了常规的操作流程,即“当在A情况下,就会出现B这种意外的时候,执行C即可”,但是开发者却没有考虑当用户执行了意料之外的X时会发生什么。这种对于异常情况的欠考虑,最终导致了安全漏洞的产生。

产生原因

1:程序和用户的交互上存在缺陷设计。
譬如:用户支付10000元购买了一台电脑,在下单之前,用户修改了数据包,把商品数量修改成-1,程序没有检查商品数量与价格的合理性,难不成电商还要倒赔用户?

2:设计的系统过于复杂。
即使是开发团队本身也并不完全了解这些缺陷

脑图

在这里插入图片描述

有哪些应用场景?哪些危害?

在这里插入图片描述
在这里插入图片描述

越权

  • 水平越权:有多个权限水平相同的用户,从这个用户切换到另一个用户。

一般来说,是通过更换某个ID之类的身份标识,从而使A账户获取(修改、删除)B账号的数据

  • 垂直越权:从低权限用户切换到高权限用户

一般来说,是通过低权限身份的账号,发送高权限账号才能有的请求,获得其高权限的操作

  • 未授权访问:

通过删除请求中的认证信息后重放该请求,依旧可以访问或者完成操作

防御方式

  1. 前后端同时对用户输入信息进行校验,严双重验证机制
  2. 调用功能前验证用户是否有权限调用相关功能
  3. 执行关键操作前必须验证用户身份,验证用户是否具备操作数据的权限
  4. 直接对象引用的加密资源ID,防止攻击者枚举ID,敏感数据特殊化处理
  5. 永远不要相信来自用户的输入,对于可控参数进行严格的检查与过滤

支付漏洞

详细内容,参见挖洞技巧:支付漏洞之总结,写的很详细
常见漏洞点:

  • 修改支付价格
  • 修改支付状态
  • 修改购买数量
  • 修改附属值
  • 修改支付接口
  • 多重替换支付
  • 重复支付
  • 最小额支付
  • 值为最大值支付问题
  • 越权支付
  • 无限制试用
  • 修改优惠价

靶机案例

修改支付金额

漏洞出现的原因是程序没有验证用户输入的金额,或者商品数量

以BurpSuite的在线实验室为例:Excessive trust in client-side controls
0:使用在线实验室提供的账号登录页面:wiener:peter
1:打开页面发现自己有100美元,随意选择一个
在这里插入图片描述

2:开启抓包,点击“Add to cart”,并把包发送到重放模块,停止抓包
在这里插入图片描述

3:此时的购物车
在这里插入图片描述

4:接下来就是设定价格,可以设为低于原价,甚至负数,亦或者修改商品数量,看哪种方法可行。
方案1:修改价格为负值,跟踪跳转之后,刷新购物车,购物车空了,钱包金额没变化,说明失败。
在这里插入图片描述

方案2:降低商品价格(设为0的话,失败同上),我这里设为20.
在这里插入图片描述

发现购物车金额有戏,提交订单
在这里插入图片描述

OK,闯关成功
在这里插入图片描述

密码找回绕过

内容描述:修改某网站自己的密码,进而控制该网站其他用户的账号思路:注册网站的账号,然后修改密码,在提交密码的页面修改对应的用户名。靶机:win2k8+phpstudy+metinfo攻击机:Burpsuite
参见我之前的文章:业务逻辑漏洞——密码找回绕过

越权

水平越权
计划以lucy的身份水平越权lili
1:lucy登陆系统
在这里插入图片描述

2:把lucy修改为lili在这里插入图片描述
3:查看成功在这里插入图片描述

垂直越权
根据提示,猜测应该是pikacu越权admin。在这里插入图片描述

1:pikachu登陆,发现自己只有查看权限在这里插入图片描述

2:管理员登陆,有添加用户权限在这里插入图片描述

3:admin添加新用户,BurpSuite抓包,发送到重放模块,然后停止截包在这里插入图片描述

admin添加了一个新用户haha
在这里插入图片描述

4:admin退出登陆,pikachu登陆系统,目的是为了获取pikachu的cookie,保持截断数据包在这里插入图片描述

5:来到重放模块
(1)把cookie换成pikachu的
(2)修改一下新建用户的信息在这里插入图片描述

6:代理模块停止截包
7:pikachu登陆成功,会看到自己添加的用户alice在这里插入图片描述

防御方式

  • 对数据进行加密
  • 确保开发人员和测试人员足够了解产品
  • 提高开发人员的安全意识
  • 限制访问IP的访问频率
  • 限制验证码的有效时间

参考

Business logic vulnerabilities
[红日安全]Web安全Day6 - 业务逻辑漏洞实战攻防
攻防演练中的业务逻辑漏洞及检测思路
惊险刺激的业务逻辑漏洞
挖洞技巧:支付漏洞之总结
2FA broken logic (Video solution)
第33天:WEB漏洞-逻辑越权之水平垂直越权全解


http://chatgpt.dhexx.cn/article/i0lubAT7.shtml

相关文章

订单业务逻辑设计

订单业务逻辑 订单的常见功能: 创建订单功能、查看订单列表、根据订单id查询订单的详细信息、订单修改、订单取消、订单状态、订单评价等功能的实现数据库表的设计 tb_order(订单信息表) tb_order_item(订单详情表) tb_order_shipping&am…

业务安全 –业务逻辑漏洞

目录 业务安全 –业务逻辑漏洞 业务安全概述; 业务安全测试流程: 业务数据安全 商品支付金额篡改 前端JS限制绕过验证 请求重放测试 业务上线测试 *商品订购数量篡改 密码找回安全 注入 业务逻辑 信息泄露 业务安全概述; 简单讲,随着社会发…

不可思议但又无处不在的漏洞,WEB安全基础入门—业务逻辑漏洞

欢迎关注订阅专栏! WEB安全系列包括如下三个专栏: 《WEB安全基础-服务器端漏洞》《WEB安全基础-客户端漏洞》《WEB安全高级-综合利用》 知识点全面细致,逻辑清晰、结合实战,并配有大量练习靶场,让你读一篇、练一篇&a…

业务逻辑安全思路总结

在一些关键的业务场景里,我们最应该关注的安全问题是什么呢? 想到这,发现挺有意思的,于是我重新去梳理了一下业务逻辑方面的内容,做了一张关于业务逻辑安全的思维导图,在整理的过程中,自己的思路…

开发业务逻辑

转自:http://www.uml.org.cn/zjjs/201008021.asp 前言 记得几个月前,在一次北京博客园俱乐部的活动上,最后一个环节是话题自由讨论。就是提几个话题,然后大家各自加入感兴趣的话题小组,进行自由讨论。当时金色海洋同学…

Service业务逻辑层

就是功能实现 例:Account类要求编写业务逻辑层AccountServiceImpl类实现一个转账功能 先定义DBUtils类封装数据库连接代码、定义Account类、定义PersonDao类提供增删改查方法 public class AccountServiceImpl{public static void transfer(int fromId,String pwd,…

业务逻辑详解

不同的项目有不同的功能,不同的功能需要不同的实现,实现这些核心功能的代码就叫业务逻辑 比如让你实现一个功能,给你两个数,让你获取它的和,你所写的如何才能获得任意给定的两个数的和,这个程序实现过程即可…

业务逻辑漏洞

业务逻辑漏洞定义: 业务逻辑漏洞是指由于程序逻辑不严谨或逻辑太复杂,导致一些逻辑分支不能正常处理或处理错误。 业务逻辑漏洞特性: 业务逻辑漏洞只出现于业务流程中(模块功能),也就是说网站的部分都有…

业务逻辑漏洞总结

一、漏洞简介 业务逻辑漏洞产生的最核心原因,就是在编写程序时,只考虑了常规的操作流程,即“当在A情况下,就会出现B,此时执行C即可”,但是开发者却没有考虑当用户执行了意料之外的X时会发生什么。这种对于…

前端业务逻辑

前端业务逻辑 1-关于全选和非全选 Vue3环境下运用ant-design-vue框架 展示效果 全选 非全选 业务逻辑 1、数据结构data const state reactive({cart: , // 购物车信息ids: [], // 删除购物车单个商品的idcartNum: , // 购物车数量checkAll: false, // 是否处于全选状态c…

java业务逻辑_java业务逻辑怎么写?

现在Java项目一般都是用Spring全家桶开发,以web项目来讲结构主要分为Controller层、Service层和DAO层,细分的话有的项目可能还会有一个Manager层。 一个请求到达后端之后会根据请求的路径找到对应的Controller,Controller会调用相应的业务Ser…

什么是业务逻辑?

不同的项目有不同的功能,不同的功能需要不同的实现,实现这些核心功能的代码就叫业务逻辑 比如让你实现一个功能,给你两个数,让你获取它的和,你所写的如何才能获得任意给定的两个数的和,这个程序实现过程即可…

业务逻辑之终极分析

细说业务逻辑 前言 记得几个月前,在一次北京博客园俱乐部的活动上,最后一个环节是话题自由讨论。就是提几个话题,然后大家各自加入感兴趣的话题小组,进行自由讨论。当时金色海洋同学提出了一个话题——“什么是业务逻辑”。当…

Linux中tar命令用法

tar命令:主要用于压缩和解压缩。 tar命令有两种压缩格式 : 1、 gzip格式: 1)、压缩 压缩用法: tar gcvf (压缩包名)文件1 文件2 一般压缩包包名以 .tar.gz作为后缀名,压缩完成之后保留原文件。 压缩前…

linux中tar命令的用法

linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的。生成tar包后,就可以用其它的程序来进行压缩。 1.命令格式: tar[必要参数][选择参数][文件] 2&…

Linux中tar命令

tar命令是类Linux中比价常用的解压与压缩命令。 可以使用命令 (man tar) 命令来进行查看man的基本命令。下面举例说明一下tar 的基本命令。 #tar -cvf sysconfig.tar /etc/sysconfig 命令解释:将目录/etc/sysconfig/目录下的文件打包成文件sysconfig.tar文…

linux-tar命令

tar命令 1. 压缩格式的介绍2. tar命令格式3. tar命令及选项的使用4. zip和unzip命令及选项的使用5.常见解压/压缩命令巨人肩膀 1. 压缩格式的介绍 Linux默认支持的压缩格式: .gz.bz2.zip 说明: .gz和.bz2的压缩包需要使用tar命令来压缩和解压缩.zip的压缩包需要使用zip命令…

tar命令集合(详解)

tar 命令可以将许多文件一起保存至一个单独的磁带或磁盘归档,并能从归档中单独还原所需文件。 示例 以test文件为例 压缩命令 tar -cvf test.tar test test1解压命令 tar -xvf test.tar主操作模式: -A, --catenate, --concatenate 追加 tar 文件至归档 -c, --…

GBDT原理

梯度提升树的使用 GBDT算法流程 GBDT流程 输入:训练数据集 D { ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x N , y N ) } D\left\{\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right), \ldots,\left(x_{N}, y_{N}\right)\right\} D{(x1​,y1​),(x2​,y2​),……

GBDT总结

一:声明 本文基本转自刘建平先生的该篇文章,原文写的很好,读者可以去看看。本文中,作者将根据自己实际项目和所学结合该文章,阐述自己的观点和看法。 二:GBDT概述 GBDT也是集成学习Boosting家族的成员&a…