浏览收费网站模板,qq安全中心信任网站,wordpress迁移后媒体库丢失,nginx搭建和WordPress漏洞
要了解第一个漏洞#xff0c;我们必须首先向您展示 OAuth 身份验证的工作原理#xff1a;
假设您是 Dan#xff0c;并且您想使用您的 Facebook 帐户连接到 Example.com。当您点击“使用Facebook登录”时会发生什么#xff1f; 在步骤 2-3 中#xff1a;
在 Dan 单…漏洞
要了解第一个漏洞我们必须首先向您展示 OAuth 身份验证的工作原理
假设您是 Dan并且您想使用您的 Facebook 帐户连接到 Example.com。当您点击“使用Facebook登录”时会发生什么 在步骤 2-3 中
在 Dan 单击“使用 Facebook 登录”后www.example.com 打开一个新窗口指向以下地址
https://www.facebook.com/v3.0/dialog/oauthredirect_urihttps//www.example.com/OAuthscopeemailclient_id1501state[random_value]response_typetoken
在步骤 4-5 中
Facebook 为 www.example.com 准备一个令牌并将浏览器重定向回redirect_uri步骤 2 中的参数。确切的重定向
https://www.example.com/OAuth#token[secret_token]
在步骤 6-7 中
www.example.com 从 URL 中读取令牌并使用它来直接与 Facebook 通信以完成身份验证并验证 Dan 的身份。
让我们把重点放在第 5 步上
https://www.example.com/OAuth#token[secret_token]
在此步骤中www.example.com 接收令牌并根据该令牌标识用户。如果攻击者将此链接发送给受害者但使用攻击者的凭据令牌会发生什么情况 由于 example.com 存在安全问题它不会验证 Dan 是否启动了 OAuth 流因此受害者 Dan 将作为攻击者连接到 Example.com 在这种情况下攻击者可以操纵受害者使用其凭据登录网站
你可能会问自己有什么大不了的而且有此看法的人不在少数许多 OAuth 开发人员认为这不是安全问题因此无法防范此类攻击。
为了理解这大事我们使用 ChatGPT 进行实际演示。
当用户安装需要 OAuth 用户批准的插件时ChatGPT 会启动以程 步骤1-2
当用户安装新插件时ChatGPT 会将他重定向到插件网站以接收代码对于这篇文章来说代码即前面提到的令牌。
步骤3-5
用户需要批准插件用户批准后插件会生成一个代码并使用该代码将用户重定向回 ChatGPT。
该插件将用户重定向到以下链接
https://chat.openai.com/aip/{plugin_ID}/oauth/callbackcode{secret_code}
步骤6-7
当 ChatGPT 收到代码时它会自动安装插件并可以代表用户与插件进行交互。
用户在ChatGPT中写入的任何消息都可以转发到插件。
听起来很熟悉这与 www.example.com 的 OAuth 图相同。新插件安装中的第 5 步与我们刚才描述的 OAuth 身份验证中的第 5 步相同。
问题和攻击
ChatGPT 不会验证用户是否确实开始了插件安装。
攻击者可以将步骤 5 中的链接发送给受害者如果受害者单击该链接则受害者的帐户上将自动安装带有攻击者凭据的新恶意插件。
受害者向chatGPT发送的任何消息都可能被转移到插件中。
例如攻击者可以向受害者发送以下链接指向 chatgpt.openai.com 域的合法链接 {malicious_plugin_id} 是攻击者想要在受害者身上安装的插件标识符。
{attacker_code_from_malicious_plugin 是攻击者从插件接收的代码。
通过单击此链接受害者在未经过确认的情况下即会安装恶意插件。
影响
攻击者可以编写自己的插件使 ChatGPT 将几乎所有聊天数据转发到该插件然后通过利用 ChatGPT 中的漏洞可以在受害者帐户上安装此恶意插件。
由于攻击者是此插件的所有者因此他可以看到受害者的私人聊天数据其中可能包括凭据、密码或其他敏感数据。
在 ChatGPT 插件的文档中他们写到“随着时间的推移我们预计系统将不断发展以适应更高级的用例”因此随着 ChatGPT 插件的不断发展现在称为 GPT此类漏洞的安全影响也变得更加显著。 缓解措施
如果实现 OAuth 并希望针对此方案进行保护则应实现 OAuth RFC 中所述的状态参数 请注意ChatGPT 确实实现了状态参数但它们的状态不是随机值因此可以被攻击者猜到。
来源salt.security