绕过借记卡的错误 cvv 并获得 OTP

信息安全 安卓 一次性密码 支付网关 支付
2021-08-11 01:47:07

这发生在 Visa/MasterCard/American Express 等中。我尝试检查许多支付应用程序和支付网关,如果我输入正确的借记卡号码、姓名、有效日期和错误的 CVV 号码,我就能收到 OTP。但是,由于最后验证了错误的 CVV,因此交易不成功。

但它不应该在我得到 OTP 之前进行验证吗?什么原因,是不是安全问题?

4个回答

但它不应该在我得到 OTP 之前进行验证吗?什么原因,是不是安全问题?

绝对不是安全问题!恰恰相反,它是一种保护。

让我们来看看这些步骤。

  1. 你输入卡的详细信息。
  2. 你输入CVV
  3. 你输入了OTP。

当且仅当所有付款的组合都正确时,才会处理付款。

现在假设一个场景,它在 2FA 之前告诉你 CVV 是错误的,这只会让攻击者有机会更好地攻击。现在攻击者知道 CVV 是错误的并且可以简单地改变它。而在正确的场景中攻击者将不得不打破 2 因素身份验证才能获得该信息

除了过早拒绝不向攻击者提供信息的一般规则外,还有一些特定于支付行业的事情有些相关。

尽管经常以强制性的方式向客户提供,但付款的身份验证信息通常用于评估风险分配责任

例如:

  • 发卡银行可能会接受根本没有提供 CVV 的付款,但如果被质疑为欺诈,商家将负责退款。如果付款已完全验证,则卡计划或发行人将承担该责任。
  • 具有不正确 CVV 但地址正确、交互式一次性密码和与先前行为一致的订单详细信息的付款可能会被欺诈评分系统接受为“低风险”。

两种情况下安全性的降低都是为了给客户带来方便。新版本的 3-D Secure(品牌为“Visa Secure”和“MasterCard ID Check”)明确地围绕这一理念设计,预先捕获大量自动信息,这意味着如果交易已经被认为是低风险的。输入的 CVV 现在只是这个复杂分析中的一个数据。

开发商在这里。我曾使用过几个发送 OTP 的系统。两者都不需要CVV来发送它。

根据Vipul Nair 的回答,最好不要让攻击者知道某些输入到最后是错误的,以免泄露可能出错的内容。我想补充一点,通常在线商店可能会将您的 PAN 和其他数据保存在他们的数据库中,但不允许(法律或发卡机构)存储您的 CVV。在某些(并非全部)情况下,是商店发送 OTP,因此他们无论如何都无法使用您的 CVV 进行验证。

不,这不是安全漏洞。相反,它增强了安全性。以下2个案例说明了原因。

案例 1:仅当 CVV 正确时才会收到 OTP:由于 CVV 通常是 3 位数字,因此很容易破解 - 只有大约 1000 种可能的组合。黑客可能会尝试所有可能的组合,因为破解它不会花费太多时间。因此,一旦您获得 OTP,就可以认为您的 CVV 已被黑客入侵。现在黑客只需要破解你的 OTP,通常是(~ 6 位数字 = 1000000 组合)。破解您的帐户所需的组合总数 1000000+1000 = 1001000 个组合。生成这些组合不需要太多时间。因此,该卡很容易被黑客入侵

案例2:即使CVV不正确也收到OTP 在这种情况下,您需要得到正确的CVV(3位)和OTP(9位)的组合。因此,组合的总数为 10^9。这大约是上述情况所需组合的 1000 倍。更多数量的组合 => 需要更多时间来破解,因此很难破解。