[Day26] Business Logic Vulnerabilities - 商业逻辑漏洞

前言

前面介绍过很多各种各样的web application攻击手法,今天来介绍Business Logic中引发的问题

正文

Business Logic Errors

Business Logic Vulnerabilities并非是一种特定单一的漏洞,它可以存在於很多不同的攻击手法,这通常是在规划架构和开发时所制定的设计方案时,产生的逻辑上的缺陷。跟Misconfig造成的漏洞不同,因为Business Logic漏洞通常指在开发时的出现的逻辑问题,并非是设定上的缺陷。

Business Logic(业务逻辑/商业逻辑)漏洞是指应用程序设计和实作时存在的缺陷,允许攻击者使用(操纵)合法功能引发预期外的行为来实现某些恶意目标。这种漏洞通常是因为开发者没有预测通灵到"可能"发生的应用程序例外,而没有安全的处理。这在拥有复杂架构与逻辑的网站应用程序/系统上特别常见,因为网站上的功能可能不是同一个团队所开发的,因此开发人员甚至自己也没有完全理解整个系统有哪些功能,和这些功能如何运作,尤其复杂系统的大型程序码库,几乎无法深入了解所有功能的所有实作。

要利用Business Logic漏洞,攻击者需要能够想到开发人员没有想到的方式与应用程序进行互动,尝试一些特殊的思维/逻辑/行为才能成功。这是因为开发时的Business Logic通常会对预设(指定)应用程序和其功能进行约束,也就是说,被开发者制定出来的Business role会规定应用程序在特定场景中给出特定的回应。

而这当中若是存在逻辑性的弱点,就可以让攻击者绕过规则。一个简单且实际发生过的例子是,在具有购买功能的网站,因为网站信任来自用户的输出(或是说开发者没想到有人没有乖乖点购买键,而是把Request拦下来後修改),而使攻击者可以用更低的价格取得商品。

POST /shop HTTP/1.1
Host: example.com
...

item=Car&amount=99&price=1

Business Logic漏洞会因为每个网站应用程序上提供的功能不同,而有所差异。这种基於逻辑的漏洞通常是每个网站独有的,因此攻击者需要有足够的通灵能力能够推测网站上的应用程序和功能之间的关系和可能存在的逻辑问题,也因为这种特性,使用弱点扫描软件要检测到这种问题非常困难,常常需要专业的Bug Hunter、渗透测试人员和白箱(White box)检测比较有容易发现。

Business Logic漏洞影响也依据网站应用程序功能的不同而有所差异,也有可能的状况是,一个网站功能存在影响较低的逻辑错误,但因为网站的其他功能引用或是关联这个功能,而造成非常严重的危害。

除了刚刚介绍过的利用非预期的低价取得商品的例子外,还有利用逻辑漏洞的2FA(多重要素验证) bypass、在P2P交易使用负值的(攻击者向受害者汇款,但款项的value为负值)、密码重置攻击、身分认证bypass。当然,这些只是一些比较好想像的逻辑漏洞,实际上常常复杂、难以理解很多,也因为网站提供的应用程序取向、功能、引用、关联而有所不同。可以参考底下的Case Study就知道影响范围非常广,攻击也千奇百怪。

Case Study


<<:  Day 26 bert 文字情感分类-5

>>:  Day 27:开始撰写 Playbook

【第23天】部署API服务-GCP架设VM(一)

【第23天】部署API服务-GCP架设VM(一) 摘要 作业流程 启用GCP服务 建立VM ssh连...

[DSA] - Basic ADT (Arrays, Linked List, Stack)

Abstract Data Type (ADT) Human - Interface - ADT L...

第37天~两张资料表之间

这篇的上一篇:https://ithelp.ithome.com.tw/articles/10283...

DOM实作 密码输入

<!DOCTYPE html> <html lang="en"...

DAY25神经网路(续三)

昨天介绍完浅层神经网路演算法,今天要来研究浅层神经网路程序: 首先要先设定学习率和隐藏神经元个数,在...