原文:
https://laconicwolf.com/2018/09/21/mfa-bypass-and-privilege-escalation/

本文主要讲解两个MFA(多因素验证)应用在web应用程序中部署实现时存在的问题。MFA的确是非常好的,我非常支持它,但在很多应用系统中,第二个因素的验证与第一个因素无关,这导致了可以将帐户“A”的用户名/密码与账号“B”的第二个因素混合。在第一个MFA应用中,导致可以绕过第二个因素。在第二个MFA应用中,导致了权限提升。

  1. 应用一 Okta:第二个因素绕过,没有帐户锁定
    该系统允许自行注册,并使用Okta强制执行身份验证。你可能不知道Okta是什么,它就是一个身份和访问管理解决方案,可以集成到你的应用程序中,以提供集中管理和单点登录。在进一步讲解之前,我想提一下,我无法在.okta.com这个域上复现这一点,也就是绕过第二个因素,所以我认为Okta是没有任何问题的,问题出在我要测试的这个特定的应用程序上,它采用Okta验证的实现方式有问题。

我们先来走一遍该系统的正常身份验证流程,然后再来讨论这些漏洞。

正常身份验证流程

使用用户名和密码登录,如图:

服务器检查用户名/密码是否正确,返回第二个因素要提交的必要数据,这些数据具体来说就是状态令牌,oktaUserId和factorId:

在上述响应之后,将自动提交一个请求以启动第二个因素的SMS通知,然后你会看到如下的提示:

提交第二个因素并确认后,会自动发起第二个身份验证请求,如图:

点击收藏 | 0 关注 | 1
  • 动动手指,沙发就是你的了!
登录 后跟帖