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

业务逻辑漏洞的示例

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

在本节中,我们将看看设计和开发团队制作的一些典型错误的例子,并向您展示他们如何直接导致业务逻辑缺陷。无论您是如何开发自己的应用程序,或审核现有的应用程序,您都可以从这些示例中获取的经验教训,并对您遇到的其他应用程序应用相同的关键思维。

逻辑缺陷的例子包括:

对客户端控制的过度信任

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

在面值处接受数据,而不执行正确的完整性检查和服务器端验证,可以允许攻击者以相对最小的努力进行各种损坏。正是他们能够实现的目标是依赖于功能,以及它与可控数据做的事情。在正确的上下文中,这种缺陷可能对业务相关功能和网站本身的安全性具有毁灭性的后果。beplay体育能用吗

未能处理非常规输入

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

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

要实现这样的规则,开发人员需要预测所有可能的方案,并包含处理应用程序逻辑的方法。换句话说,他们需要讲述应用程序是否应该允许给定的输入以及它应该如何基于各种条件进行反应。如果没有用于处理给定案例的明确逻辑,这会导致意外和可能的可利用行为。

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

考虑两个银行账户之间的资金转移。此功能几乎肯定会检查发送方在完成传输之前是否有足够的资金:

$ transferAmount = $ _POST['多'];
美元currentBalance = $ user - > getBalance ();

if($ transmamount <= $ curerance){
//完成转移
其他}{
//阻止转移:资金不足
}

但是,如果逻辑不能充分防止用户在数量参数,这可以由攻击者利用攻击余额检查并在“错误”方向上传输资金。如果攻击者发送 - 1000美元到受害者的账户,这可能会导致他们从受害者收到1000美元。逻辑将始终评估-1000小于当前余额并批准传输。

如果在正确的功能中发生,那么简单的逻辑缺陷可能是毁灭性的。在开发和测试期间,它们也很容易错过,特别是考虑到这些输入可能被Web界面上的客户端控件阻止。beplay体育能用吗

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

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

这可能会暴露弱输入验证,允许您以不寻常的方式操作应用程序。请记住,如果您在目标网站上发现一个表单不能安全地处理非常规输入,很可能其他表单也会有同样的问题。beplay体育能用吗

对用户行为进行有缺陷的假设

最常见的根本原因之一逻辑漏洞对用户行为进行有缺陷的假设。这可能导致开发人员未被视为违反这些假设的潜在危险场景的广泛问题。在本节中,我们将提供一些应避免的常见假设的警告示例,并展示它们如何导致危险的逻辑缺陷。

值得信赖的用户永远不会依赖

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

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

用户将不会始终提供强制性输入

一个误解是用户将始终为强制输入字段提供值。浏览器可能会阻止普通用户在没有所需输入的情况下提交表单,但正如我们所知道的,攻击者可以通过传输中的参数篡改。这甚至延伸到完全去除参数。

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

在探测逻辑漏洞时,您应该依次删除每个参数,并观察响应的效果。你应该确保:

  • 每次只删除一个参数,以确保到达所有相关的代码路径。
  • 尝试删除参数的名称以及值。服务器通常会以不同的方式处理两种情况。
  • 遵循多级流程到完成。有时在一个步骤中与参数篡改将在工作流程中进一步效果。

这适用于两个URL和帖子参数,但别忘了检查cookie。这个简单的过程可以揭示一些可以利用的奇异应用程序行为。

用户将不会始终遵循预期的序列

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

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

即使在相同的工作流程或功能中,对事件序列进行假设也会导致各种各样的问题。使用Burp Proxy和Repeater这样的工具,一旦攻击者看到一个请求,他们可以随意重放它,并使用强制浏览以他们想要的任何顺序与服务器执行任何交互。这允许它们在应用程序处于意外状态时完成不同的操作。

要识别这些漏洞,您应该使用强制浏览来以意外的序列提交请求。例如,您可能会跳过某些步骤,多次访问单步,返回更早的步骤,等等。注意如何访问不同的步骤。虽然你经常只提交一个得到或者帖子请求特定的URL时,有时可以通过向相同的URL提交不同的参数集来访问步骤。与所有逻辑缺陷一样,尝试确定开发人员做出了哪些假设,以及攻击的表面在哪里。然后,您可以寻找违反这些假设的方法。

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

特定领域的缺陷

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

在寻找逻辑缺陷时,在线商店的折扣功能是经典攻击面。这可能是一个攻击者的潜在金矿,各种基本逻辑缺陷在折扣的方式中出现。

例如,考虑一家在线商店,订单超过1000美元的订单提供10%的折扣。如果业务逻辑未能检查应用折扣后是否更改订单,则可能易于滥用。在这种情况下,攻击者可以简单地将物品添加到购物车,直到它们达到1000美元的阈值,然后在下订单之前删除他们不想要的物品。然后,它们会在订单上收到折扣,即使它不再满足预期的标准。

您应该特别注意根据用户操作确定的标准调整价格或其他敏感值的任何情况。尝试理解应用程序使用什么算法来进行这些调整,以及在什么情况下进行这些调整。这通常涉及对应用程序的操作,使其处于一种状态,即应用的调整不符合开发人员预期的原始标准。

要识别这些漏洞,您需要仔细考虑攻击者可能有哪些目标,并尝试找到使用提供的功能实现这些目标的不同方法。这可能需要特定领域的特定知识,以便理解在给定的上下文中什么可能是有利的。举个简单的例子,您需要了解社交媒体,以便了解迫使大量用户关注您的好处。

如果没有这种域名的知识,您可能会忽略危险行为,因为您只是不了解其潜在的敲击效果。同样,您可能会努力加入点,并注意两个功能如何以有害的方式组合。为简单起见,本主题中使用的示例特定于所有用户已经熟悉的域名,即在线商店。但是,无论你是Bug Bounty狩猎,波普或者仅仅是一个试图编写更安全代码的开发人员,您可能会在某些时候遇到来自不太熟悉领域的应用程序。在这种情况下,您应该阅读尽可能多的文档,并在可能的情况下与该领域的主题专家交谈,以获得他们的见解。这听起来可能需要大量的工作,但是这个领域越模糊,其他测试人员就越有可能漏掉许多漏洞。

提供加密Oracle

当用户可控输入被加密时,可能会发生危险场景,然后以某种方式向用户提供生成的密文。这种输入有时称为“加密Oracle”。攻击者可以使用此输入来使用正确的算法和非对称密钥加密任意数据。

当应用程序中存在其他用户可控制的输入,这些输入需要使用相同的算法加密数据时,这就变得很危险。在这种情况下,攻击者可能会使用加密oracle生成有效的加密输入,然后将其传递给其他敏感函数。

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

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

使用Burp套件查找业务逻辑漏洞

通过PortSwigger的网络安全学院工作的好处beplay官网可以赌beplay体育能用吗

从Web安全学院开始,在那里你可以练习利用beplay体育能用吗现实目标的漏洞。和它的自由!

已经有了一个帐户?这里登录