概述
近期有白帽子在 Firefox 帐户的 API 端点https://api.accounts.firefox.com/v1/account/destroy
中发现一处 IDOR 漏洞,该漏洞允许使用SSO(即Google登录)进行身份验证的攻击者,通过他们的电子邮件地址删除受害者用户的账户,服务器未能验证发起删除请求的会话是否属于被删除的账户本人。
漏洞披露
Firefox 账户 API 存在一个高危漏洞,允许经过身份验证的攻击者通过使用攻击者会话发送 POST /v1/account/destroy
请求,从而永久删除任意用户账户(需在 JSON 中包含受害者的电子邮件和 authPW(密码散列)),服务器未经验证发起的请求会话是否属于被删除账户。
复现步骤
- 登录到受害者的帐户
- 使用Burp Suite拦截删除帐户时的请求
https://api.accounts.firefox.com/v1/account/destroy
,JSON内容如下:
{
"email": "[email protected]",
"authPW": "42b4c2940fe2efecce851a2d8e9754d0f1cb1d37e3ccaabb060f9ac21900caff"
}
- 取消请求
- 登录攻击者帐户
- 同样,使用Burp Suite拦截同一端点的请求
https://api.accounts.firefox.com/v1/account/destroy
,在删除帐户时将其发送到Repeater并取消请求
6.在攻击者的请求中,将JSON内容替换为受害者的数据:{ "email": "[email protected]", "authPW": "42b4c2940fe2efecce851a2d8e9754d0f1cb1d37e3ccaabb060f9ac21900caff" }
- 服务器顺利接受请求并删除了受害者账户,即使该请求来自攻击者会话