浅谈业务逻辑漏洞

1.业务逻辑漏洞:业务逻辑漏洞就是指攻击者利用业务/功能上的设计缺陷,获取敏感信息或破坏业务的完整性。一般出现在密码修改、越权访问、密码找回、交易支付金额等功能处。 逻辑漏洞的破坏方式并非是向程序添加破坏内容,而是利用逻辑处理不严密或代码问题或固有不足,进行漏洞利用的一个方式。
2.说到这就简单说下三个重要的特性:完整性,可用性,保密性。
保密性:是确保信息仅被合法用户访问,而不泄露给非授权用户、实体或过程,或供其利用的特性
完整性:是指所有资源只能有授权方或以授权的方式进行修改,及信息未授权不能改变的特性
可用性:是指所有资源在适当的时候可以由授权方询问,即信息可被授权实体访问并按需求使用的特性
漏洞描述及测试方法:
这类漏洞是指应用在检查授权(Authorization)时存在缺陷,使得攻击者在获得低权限用户帐后后,可以利用一些方式绕过权限检查,访问或者操作到原本无权访问的高权限功能。,工具基本扫不出业务逻辑漏洞,他不属于top10,属于逻辑安全漏洞
修复方式:
对用户操作进行权限校验,防止通过修改参数进入未授权页面及进行非法操作,建议在服务端对请求的数据和当前用户身份做校验检查。

3.什么是越权?
越权漏洞成因主要是因为开发过程中对数据增删改查时对客户端没有进行严格的权限判定,导致单个用户可以操作其他用户的一些操作,叫做越权。
换句话来讲就是,A用户与B用户之间可以访问自身的内容(例如个人资料、地址等),由于数据进行查询操作的时候并没有对用户的身份识别进行判断,导致A用户可以越权查看B用户才能看到的内容
水平越权和垂直越权
我们都知道,越权分为水平越权和垂直越权,那么什么是水平越权什么是垂直越权呢?
攻击者能执行与自己同级别的其他用户执行的操作,即尝试访问与它拥有相同权限的用户资源,即水平越权
其实我觉得这句话比较笼统,因为在工作当中很多人都有一个误区,那就是大多数人认为,水平越权通常发生在同级别用户当中,即普通用户与普通用户之间、管理员用户与管理员用户之间。
而垂直越权则发生在普通用户与管理员用户之间,相信很多朋友都会有这个误区,毕竟都是这么写的。
然而我在这里想问大家一下,什么是管理员用户,什么是普通用户?在开发者的程序里,我看到用户的权限分为很多等级,简单举个例子一个公司每个部门都有一个管理员账号,即便是管理员,也分为10个等级,那么不同等级的管理员之间的越权行为还能是水平越权吗?

4.我理解的管理员比普通用户多的不是身份而是功能,当然普通用户能看到的页面,管理员也不一定能看到。

5.说了这么多,那么越权操作都会造成哪些危害呢?
越权访问,这类漏洞是指应用在检查授权(Authorization)时存在纰漏,使得攻击者在获得低权限用户帐后后,可以利用一些方式绕过权限检查,访问或者操作到原本无权访问的高权限功能。在实际的代码安全审查中,这类漏洞往往很难通过工具进行自动化检测,因此在实际应用中危害很大。其与未授权访问有一定差别。
也就是说,越权会影响到很大一部分的正常业务,举个例子。
一个销售平台,用户买东西需要填写邮寄地址,攻击者在获取到越权点之后通过一系列手段更改了用户的收件地址,从而导致你买的东西邮到了我家。

6.支付逻辑漏洞
漏洞描述及测试方法:
实际上这个情况常见的情况有:
负值反冲、正负值对冲、甚至是直接修改数量单价、总价等等。
负值反冲,就是说程序没有校验订单的取值范围,若是使用负值则可以进行支付逻辑利用;
正负值对冲,是指,通过修改订单的数量或者是单价、总价来达到少付钱的目的,但是你的值不能是负值
假如在某宝,我在测试过程遇到的一个,要购买买的商品需要加入购物车后购买,于是乎我将单价、总数进行更改,成功的达到了少付款的目的,一元购。
修复方式:
1.服务器端在生成交易订单时,商品的价格从数据库中取出,禁止使用客户端发送的商品价格。

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

7.短信炸弹
漏洞描述及测试方法:
是的,你没看错,短信炸弹严格意义上来讲也属于业务逻辑漏洞,诱发原因是没有进行时间戳等校验,此处与信息安全描述的重放攻击类似,在测试过程中,某接口存在发送手机验证码的功能,但是短信发送平台没有去识别该用户发送验证码的时间等,导致短时间内可以重复的发送大量的短信校验码,不但对系统资源进行了消耗,同时也对用户造成了恶劣的影响。
修复方式:
最简单的就是短信平台对同一手机号进行识别,一定时间内不允许继续发送验证短信请求,也就是所谓的一分钟内不允许继续请求。
8.未授权访问
漏洞描述及测试方法:
未授权访问漏洞,是在攻击者没有获取到登录权限或未授权的情况下,不需要输入密码,即可通过直接输入网站控制台主页面地址。
通俗的来讲,就是你本来需要登录才能实现的功能,你现在不需要登录就能看到,这类漏洞最容易测试,同时也最容易被忽略,测试方式只需要打开新的隐私浏览器进行访问,或使用burp进行数据包拦截,而后将所有的用户信息全部删掉,若是还能正常访问,那就是存在此漏洞。
修复方式:
在系统中,加入用户身份认证机制或者tonken验证,防止可被直接通过连接就可访问到用户的功能进行操作。

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

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

相关文章

ubuntu内存不足,用Swap扩展增加虚拟内存

Linux增大Swap分区,可以增加虚拟内存,以解决电脑卡机,内存不足等问题 top可以查看cpu的使用情况 lscpu可以查看本机配置的cpu硬件情况 查看内存使用情况 free -h (下面显示"交换"或者Swap等字样说明系统已经启动了Swap&#xff…

GUROBI案例实战(六)——排产排程问题(2)

更多可参考:https://github.com/Gurobi/modeling-examples/blob/master/food_manufacturing/food_manufacture_1.ipynb 一、问题简介 (1) 某厂商生产一种香皂的原材料有植物油脂和非植物油脂,其中植物油脂有两种,非植物油脂有三种&#xff…

【Java - 框架 - SpringMVC】(01) SpringMVC框架的简单创建与使用,快速上手

"SpringMVC"框架的简单创建与使用,快速上手; 环境 Java版本"1.8.0_202";Spring Boot版本"2.5.9";Windows 11 专业版_22621.2428;IntelliJ IDEA 2021.1.3(Ultimate Edition)&#xff1…

Protobuf 的介绍与使用(入门级)

背景 在移动互联网时代,手机流量、电量是最为有限的资源,而移动端的即时通讯应用无疑必须得直面这两点。 解决流量过大的基本方法就是使用高度压缩的通信协议,而数据压缩后流量减小带来的自然结果也就是省电:因为大数据量的传输必…

提升效率!商务电子邮件在WorkPlace中如何高效运用?安全保障!

高效和安全的沟通是任何组织成功的核心。在我们关于电子邮件类型的系列文章的第二期中,我们将重点关注商业电子邮件在促进无缝交互中的关键作用。当你身处重要的工作场环境时,本系列的每篇文章都提供了电子邮件的不同维度的视角。 “2024年,全…

算法系列--递归

一.如何理解递归 递归对于初学者来说是一个非常抽象的概念,笔者在第一次学习时也是迷迷糊糊的(二叉树遍历),递归的代码看起来非常的简洁,优美,但是如何想出来递归的思路或者为什么能用递归这是初学者很难分析出来的 笔者在学习的过程中通过刷题,也总结出自己的一些经验,总结来…

C语言例3-39:赋值时类型转换可能出现错误的例子

进行数据类型转换时,需要注意以下几点: 强制类型转换获得的是一个所需类型的中间量,原来表达式的类型并不发生变化。例如(double)a只是将变量a的值转换成一个double型的中间量,但其数据类型并未转换为double型表达式计算过程中&a…

Java开发---上海得帆(一面)

面试感受 这是我的第一次面试,我感觉我这次面试的很差,很糟糕,十分的糟糕,万分的糟糕。第一次面试,面试了半个小时。我去真的好紧张,脑子里一篇空白。脑子空白还不是最惨的,最惨的是那个八股文…

游戏客户端开发

1、LOL里面用到的是什么同步机制? 2、网络不好的情况下人物会出现瞬移等情况,怎样避免? 3、游戏里面有没有涉及数据存储,如存档之类的?、 4、如果让你设计存档,会如何着手? 5、以二进制方式…

反光衣AI检测识别算法---豌豆云

工服反光衣穿戴AI检测识别算法是一项基于人工智能视觉智能分析的创新技术。 它通过使用现场摄像头对工地进行全天候、不间断的监测,旨在提高工地安全管理水平。 这个系统的核心功能是自动检测和识别潜在的危险行为,例如未穿戴工服、反光衣、安全带或未…

聊一聊基础

基础 1、面向对象编程是什么? 面向对象编程在解决问题的时候,会先抽象出对象,再使用对象去解决问题。 面向过程把解决问题的过程拆成一个个方法,通过一个个方法的执行解决问题。 面向对象编程有三大特性,继承、封装…

containerd管理命令ctr常用操作 —— 筑梦之路

Containerd ctr、crictl、nerdctl客户端命令——筑梦之路_crictl login-CSDN博客 镜像常用操作 1. 拉取镜像 ctr images pull docker.io/library/nginx:alpine 注意:containerd支持oci标准的镜像,所以可以直接使用docker官方或dockerfile构建的镜像 需…

RabbitMQ--04--Spring Cloud Stream(消息驱动)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1.Spring Cloud Stream1. 基本介绍https://spring.io/projects/spring-cloud-stream#overview 2.Spring Cloud Stream 解决的痛点问题3.设计思想Stream为什么可以统…

2024网络安全-自学笔记

前言 一、什么是网络安全 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域,都有攻与防…

新火种AI|国产手机抢滩“AI+折叠屏”赛道,行业洗牌大战就此开启?

作者:小岩 编辑:彩云 从2023年到2024年,随着新一波人工智能浪潮的加速,消费电子产品也迎来了全新的话题——AI。更重要的是,这场战争看似没有硝烟,但各大厂商都已经暗自角力了许久,特别是手机…

Java二阶知识点总结(八)Linux和Docker

Linux 1、常用命令: cat:查看文件内容cd:切换目录ifconfig或ip addr:用于查看网络接口的地址和参数pwd:显示当前目录的绝对路径ls/ll:查看当前目录下的所有文件touch:创建文件mkdir&#xff1…

Windows 11 鼠标右键可选择 cmd 命令行选项

** Windows 11 鼠标右键可选择 cmd 命令行选项 ** 在文件夹内打开命令行,只能使用 Windows 自带的 PowerShell , 作为一个 cmd 重度使用用户来说很是折磨,需要打开 cmd 然后切换盘符再 cd 。。。 现在咱们自己创建一个可以打开 cmd 的方法…

Qt调用内置图标

int IconIndex0; QIcon icon QApplication::style()->standardIcon((QStyle::StandardPixmap)IconIndex);按以上代码可以调用Qt内置的71个图标,只要变换IconIndex就可以了,IconIndex为[0,70]。显示如下:图标index名称。

图论中的最小生成树:Kruskal与Prim算法深入解析

🎬慕斯主页:修仙—别有洞天 ♈️今日夜电波:アンビバレント—Uru 0:24━━━━━━️💟──────── 4:02 🔄 ◀️ ⏸ ▶️ ☰ …

游戏客户端-面经

做一道题:一副牌,能不能全凑成顺子和同花对C是什么级别的认知。内联函数可不可以是虚函数New和malloc有什么区别多态有几种静态多态是什么,动态多态是什么?什么是拷贝构造函数什么情况下要自己写拷贝构造函数什么是移动构造函数深…