白帽故事 · 2024年7月3日 0

通过操控会话绕过OTP,实现未授权访问

背景介绍

国外白帽在 Web 登录组件的 OTP 页面中发现了一处严重漏洞,问题源于对某些请求参数的不当处理,从而通过响应操控实现未经授权的访问。

该漏洞的核心主要涉及 PIDM 和 WEBID 参数来制作会话 Cookie。

漏洞发现

在一次渗透测试中,白帽小哥注意到 OTP 页面对用户身份验证的处理有一些特殊的地方。

通过分析,白帽小哥发现 POST 请求中的 PIDM 和 WEBID 参数可用于创建会话 Cookie。

  • 涉及参数:PIDM 和 WEBID
  • 漏洞利用技术:响应操控
  • 漏洞影响:通过 OTP 绕过,从而进行未授权访问

由于该漏洞在某大型组织中发现,为保密起见,详细信息会进行隐藏

输入有效的凭据和有效的 OTP 代码后,白帽小哥开始观察服务器的响应包。

响应包中使用 POST 请求中的 PIDM 和 WEBID 值来制作的会话 Cookie。如下:

file

“VerC”为有效的OTP Code

服务器的响应为:

Set-Cookie: SESSID=QlZOWEY3MTIzNDcyNA==

解码 Base64 编码的 Cookie (QlZOWEY3MTIzNDcyNA==):

BVNXF71234724

这证实了PIDM和WOBID被用于创建会话Cookie。

那么通过使用 PIDM 和 WEBID 来制作会话 Cookie,攻击者就可以绕过 OTP。方法如下:

即使使用无效的 OTP Code,攻击者也可以通过组合 PIDM 和 WEBID、使用 Base64 对它们进行编码并操纵响应以包含该会话 Cookie 来手动制作会话 Cookie。因此该漏洞也可以绕过有效 OTP Code。

通过精心设计的会话 Cookie:

PIDM=1234724
WEBID=BVNXF7
Combined: BVNXF71234724
Base64: QlZOWEY3MTIzNDcyNA==

利用构建后的 Cookie 便可用于操控服务器响应。

输入有效的OTP code后,可以看到服务器响应如下:

<HTML>
<HEAD>
<meta http-equiv="refresh" content="0;url=/app/dashboard?welcome=true">
</HEAD>
</HTML>

PoC

1、 首先使用有效凭据登录
2、 然后在登录页面上输入有效的凭据以重定向到 OTP 页面
3、提交任意 OTP
4、在 OTP 输入字段中输入一个随机数并捕获 POST 请求

file

5、结合 PIDM 和 WEBID 值,制作会话 Cookie:

BVNXF71234724
Base64: QlZOWEY3MTIzNDcyNA==

6、截获服务器的响应并对其进行修改以包含构建的会话 Cookie:

file

7、当发送 Post 请求时,拦截响应并添加制作的 Cookie

8、 访问管理仪表板,包含精心设计的会话 Cookie 的操纵响应会将当前用户重定向到仪表板,从而绕过 OTP 验证。

以上内容由骨哥翻译并整理。

原文:https://medium.com/@n4if/otp-bypass-through-session-manipulation-d73deceaa42f