网络安全进阶学习第十六课——业务逻辑漏洞介绍

news2024/11/15 8:50:57

文章目录

  • 一、什么是业务逻辑
  • 二、业务逻辑漏洞的成因
  • 三、逻辑漏洞的重要性
  • 四、业务逻辑漏洞分类
  • 五、业务逻辑漏洞——业务授权安全
    • 1、未授权访问
    • 2、越权访问
      • 1) 平行越权(水平越权是指相同权限的不同用户可以互相访问)
      • 2) 垂直越权(垂直越权是指使用权限低的用户可以访问权限较高的用户)
    • 3、越权访问挖掘思路
    • 4、越权漏洞的危害
    • 5、如何检测越权漏洞
    • 6、业务流程乱序
      • 顺序执行缺陷
  • 六、业务逻辑漏洞——业务接口调用
    • 1、重放攻击
      • 1)恶意注册
      • 2)短信炸弹
      • 3)无限刷积分/投票
      • 4)投票活动刷票
    • 2、内容编辑
      • 1)时间范围修改
  • 七、业务逻辑漏洞——业务一致性安全
    • 1、手机号篡改
    • 2、邮箱地址篡改
    • 3、订单id篡改
    • 4、商品编号篡改
    • 5、用户id篡改


一、什么是业务逻辑

– – 实际上,我们口口声声的业务逻辑,是只用代码实现的真实业务的规则映射。注意“规则”这个词,简单说,一个业务中,存在什么逻辑,可以通过在纸上画出不同业务对象之间的联系和约束,并将这些联系和约束一条条列出来,形成一个列表,而这列表中的每一条,就是一条规则,这些规则的总和,就是这个业务的业务逻辑,而且是全部业务逻辑,你不能再多列出一条了。


二、业务逻辑漏洞的成因

– – 应用程序在设计和实施的时候存在缺陷,允许攻击者诱发意外行为,像是设计的方案被人钻了空子。 通俗理解就是:在编写程序时,只考虑了常规的操作流程,即“当在A情况下,就会出现B,此时执行C即可”,但是开发者却没有考虑当用户执行了意料之外的操作时会发生什么。这种对于异常情况的欠考虑,最终导致了安全漏洞的产生。


三、逻辑漏洞的重要性

– – 常见的OWASP漏洞,通过漏洞扫描工具,大多支持自动化或者半自动化扫描出来;并且传统的安全防御设备和措施收效甚微;

– – 但逻辑漏洞属于和系统自身功能和逻辑有关系的漏洞,每一家的漏洞出现可能存在一定的独特性,很难复制或者通过规则通过脚本扫描,因此逻辑漏洞大多需要配合代码审计和手动测试才可发现相关漏洞,也是工具无法完全替代人所作的一类漏洞。

– – 业务逻辑属于正常请求,都是按照正常的程序走的,一般的安全设备是无法拦截的。


四、业务逻辑漏洞分类

  1. 验证码突破
  2. 业务授权安全
  3. 业务流程乱序
  4. 业务接口调用
  5. 时效绕过测试
  6. 身份认证安全
  7. 业务一致性安全
  8. 业务数据篡改
  9. 用户输入合规性
  10. 密码找回漏洞

五、业务逻辑漏洞——业务授权安全

1、未授权访问

– – 非授权访问是指用户在没有通过认证授权的情况下能够直接访问需要通过认证才能访问到的页面或文本信息。

– – 可以尝试在登录某网站前台或后台之后,将相关的页面链接复制于其他浏览器或其他电脑上进行访问,看是否能访问成功。例如:我用谷歌浏览器登录了百度的账号,然后我把登录后的个人中心页面链接复制下来,复制到火狐浏览器(从来没有登录过百度的账号)中,发现直接就登录成功了。这种就是未授权访问。

2、越权访问

– – 越权漏洞的成因主要是因为开发人员在对数据进行增、删、改、查询时对客户端请求的数据过分相信而遗漏了权限的判定。
在这里插入图片描述

1) 平行越权(水平越权是指相同权限的不同用户可以互相访问)

– – 就是我登录某平台时,发现URL有ID号,我通过直接修改ID,就登录上了其他人的账号。

2) 垂直越权(垂直越权是指使用权限低的用户可以访问权限较高的用户)

– – 就是某平台的某高级功能的路径被泄露了,我用普通的账号登录,然后直接访问该路径,发现我的账号可以直接访问,并且可以使用原来不存在的功能。(低权限用户访问高权限用户)

3、越权访问挖掘思路

  • 水平越权:如果在访问网站数据包中有传输用户的编号、用户组编号或类型综号的时候,那么尝试对这个值进行修改,就是测试越权漏洞的基本。
  • 垂直越权:添加用户,获取高权限用户的功能,在前端JS里面寻找泄露的路径

4、越权漏洞的危害

– – 越权漏洞的危害与影响主要是与对应业务的重要性相关,比如说某一页面服务器端响应(不局限于页面返回的信息,有时信息在响应包中,页面不一定能看见)中返回登录名、登录密码、手机号、身份证等敏感信息,如果存在平行越权,通过对用户ID的遍历,就可以查看所有用户的敏感信息,这也是一种变相的脱库,而且很难被防火墙发现,因为这和正常的访问请求没有什么区别,也不会包含特殊字符,具有十足的隐秘性。

5、如何检测越权漏洞

– – 最简单的一种检测方式是,首先是通过定位鉴权参数,然后替换为其他账户鉴权参数的方法来发现越权漏洞。

6、业务流程乱序

顺序执行缺陷

  • a) 部分网站逻辑可能是先A过程后B过程然后C过程最后D过程
  • b) 用户控制着他们给应用程序发送的每一个请求,因此能够按照任何顺序进行访问。于是,用户就从B直接进入了D过程,就绕过了C。如果C是支付过程,那么用户就绕过了支付过程而买到了一件商品。如果C是验证过程,就会绕过验证直接进入网站程序了。
  • 举例:
    访问注册页面,注册账户之后充值提交并抓取数据包,填写任意金额然后并抓包,获取订单号,利用订单号构造充值链接并访问,看是否能充值成功

六、业务逻辑漏洞——业务接口调用

1、重放攻击

– – 在短信、邮件调用业务或生成业务数据环节中(例:短信验证码,邮件验证码,订单生成,评论提交,签到,投票等),对其业务环节进行调用(重放)测试。如果业务经过调用(重放)后被多次生成有效的业务或数据结果。

1)恶意注册

– – 利用BURP不断发同一个包就可以注册,这样可以一次性发送大量的注册请求包,这就导致了恶意注册。

2)短信炸弹

– – 在测试的过程中,我们发现众多的系统仅在前端通过JS校验时间来控制短信发送按钮,但后台并未对发送做任何限制,导致可通过重放包的方式大量发送恶意短信。

3)无限刷积分/投票

– – 比如每天签到送5个积分,如果签到接口未做限制,无限重放签到接口,就能实现无限刷积分。

4)投票活动刷票

– – 投票接口未做限制,或仅仅在前端JS做限制,可无限重放投票接口,给指定用户刷票。

– – 不过目前大部分投票系统都有做限制,比如同一个IP每天只能投三次票,可尝试用XForwarded-For:127.0.0.1来绕过IP限制。
在这里插入图片描述

2、内容编辑

  • 类似案例如下:
    – – 点击“获取短信验证码”,并抓取数据包内容,如下图。通过分析数据包,可以发现参数sendData/insrotxt的内容有客户端控制,可以修改为攻击者想要发送的内容。
    – – 篡改短信内容,可用来钓鱼。

1)时间范围修改

– – 针对某些带有时间限制的业务,修改其时间限制范围,例如在某项时间限制范围内查询的业务,修改含有时间明文字段的请求并提交,查看能否绕过时间限制完成业务流程。

– – 这种漏洞某些程度也回导致严重后果,例如曾经很盛行的暂住证买卖。


七、业务逻辑漏洞——业务一致性安全

1、手机号篡改

– – 抓包修改手机号码参数为其他号码尝试。

– – 例如:在办理查询页面,输入自己的号码然后抓包,修改手机号码参数为其他人号码,查看是否能查询其他人的业务。

– – 还有一种情况,在修改密码的时候,是需要接收手机验证码的,这时候通过抓包,把接收验证码的手机改成我自己的,要是能修改,那我就可以修改其他账号的密码了。

2、邮箱地址篡改

– – 抓包修改用户邮箱参数为其他用户的邮箱。

3、订单id篡改

– – 抓包修改用户邮箱参数为其他用户的邮箱。

4、商品编号篡改

– – 例如:积分兑换处,100个积分只能换商品编号为001,1000个积分只能换商品编号005,在100积分换商品的时候抓包把换商品的编号修改为005,用低积分换区高积分商品。

5、用户id篡改

– – 抓包查看自己的用户id,然后修改id(加减1)查看是否能查看其它用户id信息。


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

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

相关文章

企业架构LNMP学习笔记47

企业架构队列缓存中间件分布式redis: 一直想学习下这块的。今天总算学到了,好好把redis的这块内容理解下。 1)能够描述Redis作用及其业务适用场景 ; 2)能够安装配置启动Redis; 3)能够使用命令…

Qt使用注意事项

1.菜单选项不能出现数字,可以是 英文 加 “_”: 2.如何确保加载的图片,尺寸大小与原来一样? 【QT】添加图片资源并使用QImage加载图片显示_qimage显示图片_李春港的博客-CSDN博客 ui->PicLabel->setPixmap(QPixmap::fromIm…

(9.8-9.14)【大数据新闻速递】

加gzh“大数据食铁兽”,了解更多大数据快讯 【2023百度十大科技前沿发明】 近日,百度发布了“2023百度十大科技前沿发明”,包括“基于大模型的检索生成决策交互一体的智能系统”“基于大模型的端到端搜索技术”“飞桨端到端自适应的分布式训…

网络工程师的甩锅指南,果断收藏

大家好,我是老杨。 都说IT行业最容易被甩锅的就是网工,这是有科学依据的,比如: 纵观我网工群的群友聊天,“锅”不离口,很难不说明一点什么问题。 遇到甩锅,我相信没有哪位朋友的心情是愉悦的。…

父子工程搭建

1. 构建父工程 父工程的职责是对依赖包的版本进行管理,创建父工程分两步,第一创建父工程,第二在pom.xml编辑依赖管理。 进入新建模块界面,选择Spring Initializr,填写模块的信息: 创建成功,删…

linux服务器内服务访问域名Name or service not know

目录 linux服务器内服务访问域名Name or service not know 1.前言2.排查是不是这个域名无法访问2.1服务内ping 这个域名2.2在浏览器打开这个域名2.3服务内ping 这个域名所对应的ip2.4在服务器内配置host 总结参考 文章所属专区 项目问题解决 1.前言 linux服务器内服务访问域名…

许可分析 license分析 第五章

许可分析是指对软件许可证进行详细的分析和评估,以了解组织内部对软件许可的需求和使用情况。通过许可分析,可以帮助组织更好地管理和优化软件许可证的使用。以下是一些可能的许可分析方法和步骤: 软件许可证自动化管理:考虑使用自…

飞驰的高铁-第15届蓝桥杯第一次STEMA测评Scratch真题精选

[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第150讲。 飞驰的高铁,本题是2023年8月20日举行的第15届蓝桥杯STEMA测评Scratch编程中级组编程第2题&#…

字节、京东等大厂年薪50w的测试都什么水平?

各位做测试的朋友,但凡经历过几次面试,那么你一定曾被问到过以下问题: 1、在Linux环境下,怎么执行web自动化测试? 2、Shell如何,Docker熟悉吗? 3、全链路的压测实操过吗,如何推进与开…

hexo搭建一个自己的博客

hexo腾讯云服务器搭建一个自己的博客 我的博客: http://www.elcarimqaq.top/ 前期准备 node.js: https://nodejs.org/en/ git:https://git-scm.com/download/win hexo官方文档:https://hexo.io/zh-cn/docs/index.html 安装hexo npm ins…

“存量竞争” 体验为王,火山引擎边缘云助力内容社区破局

今年4月,在宣布要技术升级、数据重构后,承载无数人青春的天涯社区疑似关停,一代传奇的衰落为所有内容社区释放出了不可忽视的信号。 图片来源:天涯官博 回顾天涯社区发展史,从“周公子大战易烨卿”、天涯十大诡异事件&…

“批量文件改名:将日语文件名翻译成中文,轻松管理你的文件!

如果你经常处理各种文件,可能有时候会遇到一些以日语命名的文件。这时候,为了更好地管理和查找文件,你可能需要将这些日语文件名翻译成中文。那么,如何实现批量将日语文件名翻译成中文呢? 首先,第一步进入…

对抗生成网络总结

对一些基本的对抗生成网络的总结。部分内容整理自Teeyohuang’s blog 文章目录 GAN (NeurIPS, 2014)CGANDCGANStackGANPix2Pix (CVPR, 2017)CycleGAN (ICCV, 2017)SRGAN (CVPR, 2017)StyleGAN (CVPR, 2019) GAN (NeurIPS, 2014) Generative adversarial nets m i n G m a x D …

有关‘全局唯一id‘

UUID和Snowflake的对比 当需保证全局唯一的id,可以选用UUID或Snowflake(及其变种) 其中UUID 不依赖于任何第三方系统,性能和可用性上较好; Snowflake生成的id具有单调递增性(可以拿到生成时的时间戳信息),能…

深入了解MySQL中的JSON_ARRAYAGG和JSON_OBJECT函数

在MySQL数据库中,JSON格式的数据处理已经变得越来越常见。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它可以用来存储和表示结构化的数据。MySQL提供了一些功能强大的JSON函数,其中两个关键的函数是…

HTML中name和class,id的区别和联系

在HTML中,name、class和id是用于标识和选择元素的属性。 区别: name属性:用于标识表单元素,特别是在提交表单时,用于识别表单数据。name属性可以在同一表单中的多个元素中重复使用。class属性:用于为一个…

品牌出海推广策略:海外网红营销和TikTok挑战赛的完美结合

随着全球化的深入,越来越多的品牌意识到在海外市场的存在至关重要。然而,进入国际市场并建立品牌知名度是一项复杂的任务,需要创新和多样化的策略。在这个数字化时代,品牌出海推广策略的一个令人兴奋的新趋势是将海外网红营销与Ti…

前端JavaScript Error 类: 异常处理与错误管理

🎬 岸边的风:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 ⛺️ 生活的理想,就是为了理想的生活 ! 目录 引言 1. Error 类简介 2. Error 类属性 3. Error 类的 API 4. Error 类的应用场景 5. 自定义错误类型 6. 注意…

如何在微软Edge浏览器上一键观看高清视频?

编者按:视频是当下最流行的媒体形式之一。但由于视频压缩、网络不稳定等原因,我们常常可以看到互联网上的很多视频其画面质量并不理想,尤其是在浏览器端,这极大地影响了观看体验。不过,近期微软 Edge 浏览器推出了一项…

万字长文总结检索增强 LLM

连接:https://zhuanlan.zhihu.com/p/655272123 ChatGPT 的出现,让我们看到了大语言模型 ( Large Language Model, LLM ) 在语言和代码理解、人类指令遵循、基本推理等多方面的能力,但幻觉问题 Hallucinations[1] 仍然是当前大语言模型面临的一…