OpenAI 账户验证流程存在漏洞,可导致用户无限薅羊毛
编译:代码卫士
作为人工智能公司,OpenAI 已在几个月来成为媒体焦点,而 ChatGPT 项目的加持使其关注度有增无减。
用户注册新账户时,OpenAI 公司会提供试用期间的免费额度。为防止滥用,OpenAI 执行邮件和电话号码验证机制,如试图使用同一个邮件或电话号码注册多个账户,将不再享有免费额度。这一注册流程始于注册用于接收激活链接的邮件。点击链接要求提供用于通过 SMS 信息接收验证码的电话号码。
研究人员指出,“邮件和电话号码必须是唯一的,否则用户将收到账户已存在的提示且无法获得免费额度。” 研究人员可使用私有域名上的无限别名电子邮件账户以及利用 OpenAI 公司执行的电话号码验证流程中存在的一个漏洞绕过该机制。通过拦截并修改 OpenAI API 请求,研究人员发现攻击者只需提供同一电话号码的变化即可绕过该验证流程,而且仍然拥有为多个账户提供的免费额度。
他们解释称,问题在于,用户提供的电话号码首先会通过一个组件与之前注册的号码进行比对,确保此前未用过。接着,该电话号码被传递给另外一个组件,该组件会在验证之前对其进行清理。因此,攻击者可对同一个号码前置多个0和内联非 ASCII 字节绕过第一次检查,而这些置换不会与原始值相似,同时仍然可通过该号码进行验证,从而可能为无限数量的新账户进行验证。
研究人员解释称,“后一阶段的标准化可引发大量的(如不是无限制的)不同值的集合(如 0123、00123、12\u000a3、001\u000a\u000b2\u000b3等),而这些值会被认为是唯一的标识符,使用时折叠为单个值(123),从而完全绕过初始验证机制。”
在处理值之前可通过运行标准化的方法解决这一问题,从而确保两次检查保持一致。研究员在2022年12月将问题告知 OpenAI 公司,并在2023年3月收到通知称该问题已解决。
https://www.securityweek.com/vulnerability-could-have-been-exploited-for-unlimited-free-credit-on-openai-accounts/
题图:Pexels License
本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的产品线。