1. beplay体育能用吗网络安全学院
  2. 业务逻辑漏洞
  3. 例子

业务逻辑漏洞的示例

业务逻辑漏洞相对特定于它们发生的上下文。但是,尽管个人实例逻辑缺陷差异很大,他们可以共享许多共同的主题。特别是,它们可以根据最初引入漏洞的最初错误进行松散分组。

在本节中,我们将研究一些设计和开发团队犯下的典型错误的示例,并向您展示如何直接导致业务逻辑缺陷。无论您是开发自己的应用程序还是审核现有应用程序,都可以从这些示例中吸取的教训,并将相同的批判性思维应用于遇到的其他应用程序。

逻辑缺陷的示例包括:

过度信任客户端控件

从根本上有缺陷的假设是,用户将仅通过提供的Web界面与应用程序进行交互。beplay体育能用吗这尤其危险,因为它导致进一步的假设,即客户端验证将阻止用户提供恶意输入。但是,攻击者可以简单地使用诸如BURP代理之类的工具在浏览器发送后,但在传递到服务器端逻辑之前篡改数据。这有效地使客户端控制无用。

在不执行正确的完整性检查和服务器端验证的情况下,接受面值的数据可以使攻击者以相对最小的努力造成各种损害。他们能够实现的目标取决于功能及其对可控数据的作用。在正确的背景下,这种缺陷可能会对与业务相关的功能和网站本身的安全性产生毁灭性后果。beplay体育能用吗

无法处理非常规输入

应用程序逻辑的目的之一是将用户输入限制为遵守业务规则的值。例如,该应用程序的设计目的是接受某个数据类型的任意值,但是逻辑确定该值是否可以从业务的角度接受。许多应用程序将数字限制纳入其逻辑中。这可能包括旨在管理库存,应用预算限制的限制,供应链的触发阶段等等。

让我们以在线商店的简单示例。订购产品时,用户通常指定他们要订购的数量。尽管任何整数在理论上都是有效的输入,但业务逻辑可能会阻止用户订购比当前库存更多的单位。

为了实施这样的规则,开发人员需要预测所有可能的方案,并将其处理方式纳入应用程序逻辑。换句话说,他们需要告诉应用程序是否允许给定输入以及根据各种条件应反应。如果没有处理给定案例的明确逻辑,则可能导致意外且潜在的可利用行为。

例如,数字数据类型可能接受负值。根据相关功能,允许业务逻辑可能没有意义。但是,如果应用程序没有执行足够的服务器端验证并拒绝此输入,则攻击者可能能够传递负值并诱导不良行为。

考虑两个银行帐户之间的资金转移。此功能几乎可以肯定会检查发件人在完成转移之前是否有足够的资金:

$ transferamount = $ _post ['量'];$ currentlance = $ user-> getBalance();if($ transferamount <= $ currentbalance){//完成转移} else {//阻止转移:不足资金}

但是,如果逻辑不能充分阻止用户在数量参数,这可以由攻击者利用,以绕过余额检查和沿“错误”方向转移资金。如果攻击者发送给受害人的帐户1000美元,这可能会导致他们从受害者那里获得1000美元。逻辑始终将评估-1000小于当前余额并批准转移。

这样的简单逻辑缺陷,如果出现在正确的功能中,它们可能是毁灭性的。它们在开发和测试过程中也很容易错过,尤其是考虑到此类输入可能会被W​​eb界面上的客户端控件阻止。beplay体育能用吗

在审核应用程序时,您应该使用Burp代理和中继器等工具来尝试提交非常规的值。特别是,尝试在合法用户不太可能输入的范围内尝试输入。这包括基于文本的字段的异常高或异常低的数字输入和异常长的字符串。您甚至可以尝试意外的数据类型。通过观察应用程序的响应,您应该尝试回答以下问题:

  • 数据上是否有任何限制?
  • 当您达到这些极限时会发生什么?
  • 您的输入是否执行任何转换或归一化?

这可能会揭示弱输入验证,使您可以以异常方式操纵应用程序。请记住,如果您在目标网站上找到一种表格,该表格无法安全处理非常规输入,则其他形式可能会遇到相同的问题。beplay体育能用吗

对用户行为的假设有缺陷

最常见的根本原因之一逻辑漏洞关于用户行为的假设有缺陷。这可能导致广泛的问题,在这些问题中,开发人员没有考虑违反这些假设的潜在危险情况。在本节中,我们将提供一些应避免的常见假设的示例,并证明它们如何导致危险的逻辑缺陷。

受信任的用户不会总是保持信任

应用程序似乎是安全的,因为它们实施了看似强大的措施来执行业务规则。不幸的是,某些应用程序犯了一个错误,假设最初通过这些严格的控件,则可以无限期地信任用户及其数据。这可能会导致从那时起相对松懈的相同控件的实施。

如果在整个应用程序中不始终如一地采用业务规则和安全措施,则可能导致攻击者可能利用的潜在危险漏洞。

用户不会总是提供强制性输入

一个误解是,用户将始终为强制性输入字段提供值。浏览器可能会阻止普通用户在没有必要输入的情况下提交表单,但是众所周知,攻击者可以篡改运输中的参数。这甚至扩展到完全删除参数。

在同一服务器端脚本中实现多个功能的情况下,这是一个特定的问题。在这种情况下,特定参数的存在或不存在可以确定执行哪个代码。删除参数值可以允许攻击者访问本应无法触及的代码路径。

在探测逻辑缺陷时,您应该依次删除每个参数,并观察这对响应的影响。您应该确保:

  • 仅一次删除一个参数,以确保达到所有相关的代码路径。
  • 尝试删除参数的名称以及值。服务器通常以不同的方式处理两种情况。
  • 遵循多阶段过程到完成。有时,在一个步骤中篡改参数会在工作流程中进一步对另一个步骤产生影响。

这既适用于URL,又适用于邮政参数,但不要忘记检查cookie。这个简单的过程可以揭示一些可能可利用的奇异应用行为。

用户不会总是遵循预期的序列

许多交易依赖于由一系列步骤组成的预定义工作流程。Web界beplay体育能用吗面通常会引导用户完成此过程,每次完成当前的过程时,将其带入工作流程的下一步。但是,攻击者不一定遵守此预期的序列。无法解释这种可能性可能会导致危险的缺陷,而这些缺陷可能相对简单。

例如,许多实现两因素身份验证(2FAbeplay体育能用吗)的网站要求用户在单独的页面上输入验证代码之前在一个页面上登录。假设用户将始终遵循此过程到完成,因此,不验证自己的操作可能会允许攻击者完全绕过2FA步骤。

即使在相同的工作流程或功能中,就可以对事件顺序进行假设也可能导致广泛的问题。使用Burp代理和中继器之类的工具,一旦攻击者看到了请求,他们就可以随意重播,并使用强制浏览以按照所需的任何顺序与服务器进行任何交互。这使他们可以在应用程序处于意外状态时完成不同的操作。

为了识别这类缺陷,您应该使用强制浏览以意想不到的顺序提交请求。例如,您可能会跳过某些步骤,访问单个步骤以上,返回较早的步骤,依此类推。请注意如何访问不同的步骤。尽管您经常只是提交得到或者邮政请求对特定URL,有时您可以通过将不同的参数集提交同一URL来访问步骤。与所有逻辑缺陷一样,尝试确定开发人员所做的假设以及攻击表面所在的位置。然后,您可以寻找违反这些假设的方法。

请注意,这种测试通常会导致异常,因为预期变量具有零或非初始化值。到达部分定义或不一致状态的位置也可能导致申请投诉。在这种情况下,请务必密切关注您遇到的任何错误消息或调试信息。这些可以是宝贵的来源信息披露,这可以帮助您微调攻击并了解有关后端行为的关键细节。

特定领域的缺陷

在许多情况下,您会遇到特定于业务领域或网站目的的逻辑缺陷。

在寻找逻辑缺陷时,在线商店的折现功能是经典的攻击表面。对于攻击者来说,这可能是一个潜在的金矿,以折扣的方式发生各种基本逻辑缺陷。

例如,考虑一家在线商店,可在$ 1000上提供10%的折扣。如果业务逻辑未能检查折扣后是否更改订单,这可能很容易受到滥用。在这种情况下,攻击者可以简单地将项目添加到购物车中,直到他们达到1000美元的门槛,然后在下订单之前删除他们不需要的项目。然后,他们将获得订单的折扣,即使该订单不再满足预期的标准。

您应该特别注意根据用户行动确定的标准调整价格或其他敏感值的任何情况。尝试了解该应用程序用于进行这些调整的算法以及在什么时候进行这些调整。这通常涉及操纵应用程序,以使其处于适用调整不符的状态与开发人员打算的原始标准相对应。

为了识别这些漏洞,您需要仔细考虑攻击者可能拥有的目标,并尝试使用提供的功能找到不同的方法来实现这一目标。这可能需要一定程度的特定领域知识,以了解在给定情况下可能有利的知识。要使用一个简单的示例,您需要了解社交媒体,以了解强迫大量用户关注您的好处。

如果不知道该领域,您可能会忽略危险的行为,因为您根本不知道其潜在的敲门效应。同样,您可能很难加入点,并注意如何以有害的方式组合两个功能。为简单起见,本主题中使用的示例特定于所有用户已经熟悉的域,即在线商店。但是,无论您是bug赏狩猎,五边形,甚至只是试图编写更安全的代码的开发人员,您可能会在某个时候遇到来自不太熟悉的域的应用程序。在这种情况下,您应该阅读尽可能多的文档,并在可用的地方与来自域中的主题专家交谈以获取他们的见解。这听起来像是很多工作,但是域的晦涩难懂,其他测试人员就会遇到更多的错误。

提供加密Oracle

当对用户控制输入进行加密时,可能会发生危险的方案,然后以某种方式向用户提供所得的密文。这种输入有时被称为“加密甲骨文”。攻击者可以使用此输入使用正确的算法和不对称键来加密任意数据。

当应用程序中有其他可控制的输入期望使用相同算法加密数据时,这将变得危险。在这种情况下,攻击者可以潜在地使用加密Oracle生成有效的,加密的输入,然后将其传递到其他敏感功能中。

如果网站上有另一个可提供反向函数的用户控制输入,则此问题可能会更加复杂。这将使攻击者能够解密其他数据以识别预期的结构。这为他们节省了创建恶意数据所涉及的一些工作,但不一定需要成功实现。

加密Oracle的严重性取决于哪些功能也使用与Oracle相同的算法。

免费注册以跟踪您的学习进度

通过Portswigger的网络安全学院工作的好处beplay官网可以赌beplay体育能用吗
  • 练习在现实目标上利用漏洞。

  • 记录您从学徒到专家的发展。

  • 看看您在我们的名人堂中排名。

已经有一个帐户?在此登录