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

文章目录

  • 一、什么是业务逻辑
  • 二、业务逻辑漏洞的成因
  • 三、逻辑漏洞的重要性
  • 四、业务逻辑漏洞分类
  • 五、业务逻辑漏洞——业务授权安全
    • 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.hqwc.cn/news/112652.html

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

相关文章

ip地址与网络上的其他地址有冲突吗?

ip地址相当于是计算机的号码。ip地址与网络上的其他ip地址有冲突是局域网ARP病毒攻击导致的。 ARP,即地址解析协议,实现通过IP地址得知其物理地址。 arp协议是TCP/IP协议组的一个协议,用于进行把网络地址翻译成物理地址(又称MAC地址)。arp病毒…

VR赋能红色教育,让爱国主义精神永放光彩

昨天的918防空警报长鸣,人们默哀,可见爱国主义精神长存。为了贯彻落实“把红色资源利用好、红色传统发扬好、红色基因传承好”的指示精神,许多红色景点开始引入VR全景展示技术,为游客提供全方位720度无死角的景区展示体验。 VR全景…

如何用C语言实现 IoT Core

涂鸦 IoT Core SDK 使用 C 语言实现,支持涂鸦设备模型协议,适用于开发者自主开发硬件设备逻辑业务接入涂鸦。 功能概述 涂鸦 IoT Core SDK 提供设备激活、发送上下行 DP 和固件 OTA 升级等基础业务接口封装。SDK 不依赖具体设备平台及操作系统环境&…

【笔试强训选择题】Day44.习题(错题)解析

作者简介:大家好,我是未央; 博客首页:未央.303 系列专栏:笔试强训选择题 每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!!!&#xff…

二叉树顺序结构及实现

👉二叉树顺序结构及实现 1.二叉树的顺序结构2.堆的概念及结构3.堆的实现3.1堆向下调整算法3.2堆向上调整算法 4.堆的创建4.1堆创建方法14.1.1构建堆结构体4.1.2堆的初始化4.1.3堆数据添加向上调整4.1.4主函数内容 4.2堆的创建方法24.2.1堆数据添加向下调整 4.3堆数据…

GE WES5162-9101电源模块

GE WES5162-9101 电源模块通常用于工业自动化和控制系统中,用于提供稳定的电源供应。以下是该电源模块的一些主要特点: 电源输出: WES5162-9101 电源模块的主要功能是提供电源输出,通常以直流电压或交流电压的形式,以满…

C++:new 和 delete

个人主页 : 个人主页 个人专栏 : 《数据结构》 《C语言》《C》 文章目录 前言一、C内存管理1.内置类型2.自定义类型3.delete 与 new不匹配使用问题(VS平台下) 二、operator new 与 operator delete函数三、 new 和delete的实现原理内置类型自定义类型 四…

每日一题~二叉树的最近公共祖先

题目连接:236. 二叉树的最近公共祖先 - 力扣(LeetCode) 题目描述: 思路分析: 由题可知,我们需要找到 p 和 q 两个二叉树的最近公共祖先节点,首先我们分析一下,这个最近公共祖先节点…

数字孪生:助力机载软件构型管理

飞机机载软件具有研发周期长、版本更新频繁、相关工程资料密集等特性。由于各个系统的软件分别由不同供应商开发,其设计保障等级、设计架构、实现方法等方面都各有不同,对机载软件进行高效、规范的构型管理显得尤为重要。 Q:什么是构型管理&…

如何解决 503 Service Temporarily Unavailable?

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🐅🐾猫头虎建议程序员必备技术栈一览表📖: 🛠️ 全栈技术 Full Stack: &#x1f4da…

VR全景需要加盟吗?简述VR全景加盟的意义

对于一个刚开始了解VR全景行业的新人来说,VR全景不是有软件、有设备、会拍摄就行了吗?为什么还要找全景平台进行加盟呢?VR全景加盟的作用又是什么呢?那么,我们就不得不多问几个问题了,例如不加盟的话&#…

云原生Kubernetes:K8S资源控制之污点与容忍

目录 一、理论 1.污点 2.容忍 3. Pod启动阶段 4. 故障排除步骤 5.对节点执行维护操作 二、实验 1.污点 2.容忍 三、问题 1.pod上配置容忍生成资源报错 四、总结 一、理论 1.污点 (1)作用 节点亲和性,是Pod的一种属性(偏好或硬性要求) ,它…