[Web安全 网络安全]-业务逻辑漏洞

文章目录:

一:前言

1.定义

2.类型

3.危害

4.防护

5.测试业务漏洞

6.漏洞场景

二:靶场练习

1.越权

水平越权

垂直越权

2.支付漏洞

修改支付状态

修改商品的数量

修改商品金额

最小支付和最大支付

3.账号密码破解

4.验证码

验证码暴力破解

验证码客户端回显

验证码绕过

验证码自动识别


一:前言

1.定义

业务逻辑漏洞是指由于程序逻辑不严或逻辑太复杂,导致一些逻辑分支不能够正常处理或处理错误
攻击者可以利用业务或功能上的设计缺陷,获取敏感信息或破坏业务的完整性
这类漏洞一般出现在密码修改、越权访问、密码找回、交易支付金额等功能处言简意赅:代码之后是人的逻辑,人更容易犯错,是随着人的思维逻辑产生的
大部分缺陷表现在:开发者在思考过程中做出的特殊假设,存在明显或者隐含的错误

2.类型

越权漏洞水平越权定义:相同级别(权限)的用户或者同一角色中不同的用户之间,可以越权访问、修改或者删除其他用户信息的非法操作【身份ID改变 权限类型不变】原理:通过更换某个ID之类的身份标识,从而使得A账号获取(修改,删除等)B账号的数据容易出现的地方:权限页面(需要登陆的页面)增,删,改,查的地方示例:某网站的用户A和用户B具有相同的权限。攻击者通过修改数据包中的用户ID参数,可以访问或修改用户B的信息危害:在游戏中,假如我们是平民玩家,我们仅仅通过修改ID,就变成了其他玩家,甚至有可能变成氪金大佬垂直越权定义:不同级别之间的用户或不同角色之间用户的越权,比如普通用户可以执行管理员才能执行的功能【身份ID不变 权限类型改变】原理:使用低权限身份的账号,发送高权限账号才能有的请求,获得其高权限的操作容易出现的地方:低权限用户是否能越权使用高权限用户的功能,比如普通用户可以使用管理员的功能示例:某网站的管理员页面需要管理员权限才能访问。然而,攻击者通过修改数据包中的权限参数,可以以普通用户的身份访问管理员页面危害:信息泄露,篡改用户信息,严重者可修改密码等等密码修改/找回漏洞漏洞描述:如果后台没有对旧密码进行验证,就直接允许输入新密码,会形成漏洞找回密码时,如果验证码的发送和验证机制存在缺陷,也可能被攻击者利用示例:某网站在找回密码时,通过邮箱发送一个包含auth链接的邮件然而,该auth链接的生成采用了rand()函数,在Windows环境下最大值为32768,因此可以被枚举攻击者通过枚举auth的值,可以重置任意用户的密码验证码漏洞漏洞描述:服务端未对验证时间、次数作出限制,存在爆破的可能性验证码复用、绕过等也是常见的漏洞类型示例:某网站在找回密码或注册账号时,发送验证码到用户的邮箱或手机然而,攻击者通过抓取数据包,可以轻松地获取验证码的值,并使用该验证码进行非法操作支付漏洞漏洞描述:攻击者可能通过修改支付金额、支付状态等方式,进行越权支付或盗刷示例:某网站的支付页面没有对支付金额进行严格的校验攻击者通过修改支付金额的参数,可以将支付金额修改为负数或任意值,从而进行非法支付订单金额任意修改漏洞描述:在购物网站中,攻击者可以通过修改前端代码或抓取数据包的方式,对订单的金额进行任意修改这可能导致用户支付的金额与实际购买的商品价值不符,从而给企业带来经济损失。示例:某网站在选择商品放入购物车时,用户可以直接修改价格参数,如将价格从1337元修改为1元在购物车页面和结账页面,系统均接受了这个修改后的价格短信轰炸漏洞描述:攻击者通过发送大量短信验证码请求,对目标用户进行短信轰炸,导致用户无法正常接收短信验证码用户信息泄露:如果网站没有对用户信息进行严格的保护,攻击者可以通过漏洞获取用户信息,如用户名、密码、邮箱等

3.危害

业务逻辑漏洞的危害极大,可能导致敏感信息泄露、业务完整性被破坏、经济损失等严重后果例如,越权漏洞可能导致大批量数据泄露,严重的甚至会造成用户信息被恶意篡改;支付漏洞则可能导致企业遭受经济损失,用户资金被盗刷

4.防护

加强权限管理严格限制用户的访问和操作权限,确保用户只能访问和操作其权限范围内的数据对敏感操作进行双重验证或多重验证,以提高安全性完善验证码机制对验证码的发送和验证过程进行严格控制,防止验证码被爆破或复用限制验证码的使用次数和有效期,防止其被滥用强化支付安全对支付金额、支付状态等进行严格校验和监控,防止被篡改或盗刷采用安全的支付协议和加密技术,确保支付过程的安全性加强代码审计和测试定期对代码进行审计和测试,发现并修复潜在的逻辑漏洞采用自动化测试工具和手动测试相结合的方式,提高测试效率和准确性提高安全意识对开发人员进行安全培训和教育,提高他们的安全意识鼓励用户报告发现的安全问题,并及时进行处理和修复

5.测试业务漏洞

理解业务功能确定业务流程—>寻找流程中可以被操控的环节—>分析可被操控环节中可能产生的逻辑问题—>尝试修改参数触发逻辑问题

6.漏洞场景

账户注册任意用户注册/验证码失效绕过遍历账号/短信操作恶意注册/用户覆盖短信接收邮箱:前后空格、大小写变换手机号:前后空格、+86登录      身份认证安全异地登录等机制账号劫持恶意尝试锁死用户任意用户登录/短信轰炸验证码:返回包中回显;JS校验;撞库攻击;撞库攻击;验证码空值绕过;验证码可重复使用;验证码可控;验证码有规则;万能验证码000000短信验证码绕过图形验证码绕过cookie/session密码密码没有使用哈希算法保存没有验证密码强度密码找回前端校验短信轰炸验证码爆破任意密码重置越权修改密码返回凭证账户权限水平越权垂直越权会员系统用户越权访问订单查看修改收获地址越权查看修改资料越权查看修改换绑手机修改换绑短信轰炸水平垂直越权业务活动活动福利重复提交领取:刷积分、刷优惠券修改领取数量购物订单类支付逻辑价格修改状态修改越权查看订单刷优惠券购买逻辑物品价格:负值/零物品数量:小数/分数/负数物品编号:付款商品类型购买限制业务风控:刷优惠劵、套现业务流程顺序:跳过某些步骤

二:靶场练习

万能密码 

用户:admin' or 1=1 #
密码:随意用户:admin' or '1'='1
密码:随意

1.越权

水平越权

一共两个用户,我们登陆到kobe用户,来测试越权到luck用户1.我们首先登录到kobe账户里面,点击查看个人信息,抓到包2.我们将这里的kobe改为lucy,放包3.成功越权到lucy用户

垂直越权

普通用户可以执行管理员才能执行的功能1.首先用admin/123456进行登陆抓包:放在重发器2.紧接着用pikachu/000000进行登陆抓包:将pikachu的cookie替换admin用户的cookie3.发送包:用户利用admin的cookie成功创建了test账户

2.支付漏洞

修改支付状态

假设A商品,我们进行了购买,用bp进行抓包,我们看到某一个字段0:表示支付成功1:表示支付失败假设我们暂时还未支付,bp显示的是1,我们将1修改为0去购买A商品,是10元,B商品是1000元我们先购买A商品,将A商品的数据包,给B商品那么我们就能通过10元购买10000元的商品

修改商品的数量

假如1个馒头10元钱,那么10个馒头就是100元那么-1个馒头那?这种会不会产生零元购

修改商品金额

burp软件抓包:Proxy——>Options——>match and replace将请求数据包中的金额(999)全部替换成(0.01)

最小支付和最大支付

最小支付0元等于100积分,50元相当于500积分修改为0.01和负数会显示支付失败,但是如果你修改金额为1元,那么支付就会成功当你修改为1元支付接口时存在的,然后修改跳转过去支付就会以1元购买到比它多得多的积分最大支付一般在开发当中,商品的金额都会用int型来定义,最大值2147483647我们尝试修改为2147483648,看看是否能造成整数的溢出,有可能支付状态异常,从而导致支付成功

3.账号密码破解

1.随机输入账号和密码和验证码——>点击登录2.账号密码爆破burp工具——>intercept if off——>鼠标右键——>send to repeater——>positions模块clear——>对账号密码点击add——>load——>start attack3.输入正确的账号密码,验证码

4.验证码

验证码暴力破解

burp工具——>proxy——>intercept——>intercept if on——>随机输入验证码提交鼠标右键——>send to intruder——>positions——>clear——>选中验证码addpayloads——>payload type设置为numbers(from 111111 to 999999 step1)通过返回的长度和内容来进行破解

验证码客户端回显

burp工具——>intercept if off——>raw——>鼠标右键Do intercept——>Response to this request

验证码绕过

burp工具——>intercept if off——>raw——>鼠标右键Do intercept——>Response to this requestflase——>true0——>1

验证码自动识别

一般对于图片验证码的识别流程为图像二值化处理(图片上像素点设置为0或255黑白效果)去干扰(点 线 色彩)字符分割(字符区域划分成单个字符)字符识别(字符图片还原成字符文本 pkav http fuzzer软件)

 

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

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

相关文章

目前最新 Reflector V11.1.0.2067版本 .NET 反编译软件

目前最新 Reflector V11.1.0.2067版本 .NET 反编译软件 一、简介二、.NET Reflector的主要功能包括:1. **反编译**: 反编译是将已编译的.NET程序集(如.dll或.exe文件)转换回可读的源代码。这使得开发者可以查看和学习第三方库的实现细节&…

C++ string(2)

文章目录 1.初识迭代器和范围for1.1迭代器1.2范围for1.3 aout关键字 2.字符串长度相关计算1.size 和 length2. capacity 和 reserve 3.例题演示1. [917. 仅仅反转字母 - 力扣(LeetCode)](https://leetcode.cn/problems/reverse-only-letters/description…

spring day 1021

ok了家人们,这周学习spring框架,我们一起去看看吧 Spring 一.Spring概述 1.1 Spring介绍 官网: https://spring.io/ 广义的 Spring : Spring 技术栈 (全家桶) 广义上的 Spring 泛指以 Spring Framework…

Spring AI 整体介绍_关键组件快速入门_prompt_embedding等

Spring AI:Java开发者的AI集成新利器 在过去,Java开发者在构建AI应用时面临着缺乏统一框架的问题,导致不同AI服务的集成过程复杂且耗时。Spring AI应运而生,旨在为基于Java的应用程序提供一个标准化、高效且易于使用的AI开发平台…

浅说差分算法(下)

我们上节课学了一维的差分,但其实还有二维差分,只是比较难写。 差分 二维差分的定义 二维差分是指对于一个n*m的矩阵a,要求支持操作pro(x1,y1,x2,y2,a),表示对于以(x1,y1)为左上角,(x2,y2)为右下角的矩形区域&#…

生产车间质量管理有什么用?怎么做?

在生产车间的质量管理中,科学有效的管理方法和严格规范的执行流程是至关重要的,它能够帮助企业提高产品质量、降低次品率、确保生产过程的稳定性和效率。然而,许多企业在生产车间质量管理方面存在诸多问题,常常会面临以下困境&…

多微批量自动加好友

在数字化时代,微信不仅是社交通讯的工具,更是一个拥有庞大用户基础的流量平台。对于企业而言,微信是打造私域流量池的理想选择之一。然而,随着微信号的增多,手动添加好友和备注变得既繁琐又耗时。幸运的是,…

UNI VFX Missiles Explosions for Visual Effect Graph

Unity URP和HDRP的通用视觉效果 使用在视觉效果图中制作的高性能GPU粒子系统。 无需进入视觉效果图编辑器即可轻松自定义VFX。 使用(VFX)事件——一个游戏对象可存储多个效果,这些效果可通过C#或视觉脚本触发。 总共32个事件(不包括“停止”事件)。 ❓ 什么是(VFX)事件?…

Cpp::STL—容器适配器Stack和Queue的讲解和模拟实现(15)

文章目录 前言一、适配器模式概念分类 二、Stack核心作用代码实现 三、Queue核心作用代码实现 四、deque双端队列貌似兼收并蓄?实则也难以兼得~ 总结 前言 适配器也是STL六大组件之一,请跟我一起领悟它的智慧!   正文开始! 一、…

consumer 角度讲一下i2c外设

往期内容 I2C子系统专栏: I2C(IIC)协议讲解-CSDN博客SMBus 协议详解-CSDN博客I2C相关结构体讲解:i2c_adapter、i2c_algorithm、i2c_msg-CSDN博客内核提供的通用I2C设备驱动I2c-dev.c分析:注册篇内核提供的通用I2C设备驱动I2C-dev.…

浅析建造者模式

建造者模式 一、基础知识介绍 1. 问题引出 上图面存在的问题:产品和产品创建的过程是封装在一起的。耦合性太强 解决方法: 将二者解耦和 2.建造者模式介绍 将复杂对象的构造过程抽象出来,用户不用知晓里面的构建细节 3.四个角色 建造者模式的四个角…

Java项目-基于springboot框架的财务管理系统项目实战(附源码+文档)

作者:计算机学长阿伟 开发技术:SpringBoot、SSM、Vue、MySQL、ElementUI等,“文末源码”。 开发运行环境 开发语言:Java数据库:MySQL技术:SpringBoot、Vue、Mybaits Plus、ELementUI工具:IDEA/…

【element-tiptap】如何修改选中内容时的背景颜色?

前言:element-tiptap 用鼠标选中内容的时候,背景颜色跟系统设置的主题有关,比如的我的就是卡哇伊的pink,默认是淡蓝色 但是我们观察一下语雀,背景颜色是它规定好的颜色 这篇文章来探索一下,怎么自己规定选…

实操上手TinyEngine低代码引擎插件化开发

1.背景介绍 1.1 TinyEngine 低代码引擎简介 低代码开发是近些年非常热门的一种开发方式,用户可以通过可视化的方式,简单拖拽,不写代码或者编写少量代码,类似搭积木一样搭建业务应用。 TinyEngine是一个强大的低代码引擎&#x…

企业博客SEO优化:8个必备工具与资源指南

在当今数字化时代,企业博客已远远超越了传统意义上的信息展示平台。它不仅是企业展示品牌形象、传递品牌价值的重要窗口,更是吸引潜在客户、增强用户粘性、提升网站流量和搜索引擎排名的关键。通过精心策划和高质量的内容创作,企业博客能够建…

ChatGPT4o、o1 谁才是最佳大模型?

如何选择合适的 ChatGPT 模型?OpenAI 更新细节与 GPTs 的深入解析 随着人工智能的发展,ChatGPT 已成为众多用户的强大助手,广泛应用于写作、编程、学习和商业等多个领域。然而,面对 OpenAI 提供的众多模型(如 GPT-4、…

idea中,git提交时忽略某些本地修改.将文件从git暂存区移除

我们有时候在本地调试代码时,某些配置文件需要修改成本地环境中。当改完后,需要提交代码时,这些文件又不能推到git上。如下图: 当出现这种情况,我们每次都需要手动去将不需要提交的文件的对号去掉。文件多了后&#x…

[Redis] 在Linux中安装Redis并连接图形化工具详细过程(附下载链接)

前言 安装Redis之前应该在虚拟机中安装Linux系统,这里使用centos7版本 [linux] 在VMware中安装linux、文件下载及详细安装过程(附下载链接)-CSDN博客 安装Linux后,更换yum源为阿里云并安装gcc依赖 [Linux] CentOS7替换yum源为阿…

Rust 语言持续崛起,即将冲击 TIOBE 指数前十,能否成为编程语言新王者?

Rust 语言持续崛起,即将冲击 TIOBE 指数前十,能否成为编程语言新王者? 2024 年 10 月,全球编程语言 TIOBE 排行榜再次更新,各大编程语言在各自领域中继续发挥着独特的优势。官方的标题是: Rust排名稳步攀升…

【代码随想录Day47】单调栈Part02

42. 接雨水 题目链接/文章讲解:代码随想录 视频讲解:单调栈,经典来袭!LeetCode:42.接雨水_哔哩哔哩_bilibili 思路概述 问题理解:我们需要计算在给定柱子高度之间可以接住的雨水总量。雨水的量取决于柱子的高度和它们…