欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

呐,一个苹果洞赚10万美元的详细经验都在这里了~

程序员文章站 2022-07-13 17:30:56
...

呐,一个苹果洞赚10万美元的详细经验都在这里了~ 聚焦源代码安全,网罗国内外最新资讯!

编译:奇安信代码卫士团队

呐,一个苹果洞赚10万美元的详细经验都在这里了~

安全研究员 Bhavuk Jain  Sign in with Apple 功能中发现了一个严重漏洞,并因此获得10万美元的奖金。如下是奇安信代码卫士团队对博客文章内容的翻译:

如果我告诉你,我只需你的 Email ID 就能接管你最爱的网站或app的账户,害怕吗?而这恰恰就是Sign in with Apple(“通过苹果登录”)中一个漏洞如被利用而导致的后果。

4月份,我在Sign in with Apple中发现了一个 0day,它对第三方应用造成影响。这些第三方应用并未实现自身额外的安全措施。该 bug 可导致第三方应用上的用户账户遭完全接管,而不管受害者的 Apple ID 是否有效。

为此,苹果根据苹果安全奖励计划为我颁发了10万美元的奖金。

呐,一个苹果洞赚10万美元的详细经验都在这里了~

技术详情

呐,一个苹果洞赚10万美元的详细经验都在这里了~

Sign with Apple OAuth 2.0的运作原理类似。认证用户的方式有两种,一种是使用JWT (JSON Web Token),一种是由苹果服务器生成的一个代码。这个代码之后被用于生成 JWT。如下图表表示了 JWT 的创建和验证过程。

呐,一个苹果洞赚10万美元的详细经验都在这里了~

在第2步,苹果在授权时会为用户提供两种选项,询问用户是否愿意和第三方应用共享 Apple Email ID。如果用户决定隐藏自己的 Email ID,那么苹果就会生成自己的特定用户的 Apple 中继 Email ID。根据用户的选择,在成功授权后,苹果会创建一个 JWT,它包含随后将被第三方应用用于用户登录的 Email ID  

JWT payload 解码后如下:

{
  "iss": "https://appleid.apple.com",
  "aud": "com.XXXX.weblogin",
  "exp": 158XXXXXXX,
  "iat": 158XXXXXXX,
  "sub": "XXXX.XXXXX.XXXX",
  "c_hash": "FJXwx9EHQqXXXXXXXX",
  "email": "aaa@qq.com", // or "aaa@qq.com"
  "email_verified": "true",
  "auth_time": 158XXXXXXX,
  "nonce_supported": true
}

呐,一个苹果洞赚10万美元的详细经验都在这里了~

Bug 来了

呐,一个苹果洞赚10万美元的详细经验都在这里了~

我发现我能够向苹果请求获取任意 Email ID JWT,而通过苹果的公钥验证这些令牌的签名后,它们就显示为合法签名。这意味着攻击者能够将任意 Email ID 与其连接伪造 JWT,并获得对受害者账户的访问权限。

简单请求(第2步):

POST /XXXX/XXXX HTTP/1.1
Host: appleid.apple.com


{"email":"aaa@qq.com"}

在传递任意 email 时,苹果为这个特定的 Email ID 生成一个有效的 JWT (id_token)

简单响应:

{
  "authorization" : {
    "id_token" : "eyJraWQiOiJlWGF1bm1MIiwiYWxnIjoiUlMyNTYifQ.XXXXX.XXXXX",
    "grant_code" : "XXX.0.nzr.XXXX",
    "scope" : [ "name", "email" ]
  },
  "authorizedData" : {
    "userId" : "XXX.XXXXX.XXXX"
  },
  "consentRequired" : false
}

这个漏洞的影响非常严重,因为它可导致账户遭完全接管。鉴于支持其它社交账户登录的应用的强制要求,很多开发人员都集成了Sign in with Apple 功能。很多知名应用都在使用 Sign in with Apple,如 DropboxSpotifyAirbnbGiphy(已被 Facebook 收购)。虽然并未对这些应用进行测试,但它们如果在验证用户方面并未部署其它安全措施,那么这些应用的用户账户就很容易遭完全接管。

苹果调查日志后发现并未出现因该漏洞而导致的滥用或账户受陷情况。

 


呐,一个苹果洞赚10万美元的详细经验都在这里了~

推荐阅读

我一口气发现7个Safari  0day,苹果奖了7.5万美元

苹果会修复这个 0day吗?有人借机发布越狱包且适用于当前iOS 版本

原文链接

https://bhavukjain.com/blog/2020/05/30/zeroday-signin-with-apple/

题图:Pixabay License

本文由奇安信代码卫士编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 www.codesafe.cn”。

呐,一个苹果洞赚10万美元的详细经验都在这里了~

呐,一个苹果洞赚10万美元的详细经验都在这里了~

奇安信代码卫士 (codesafe)

国内首个专注于软件开发安全的

产品线。

   呐,一个苹果洞赚10万美元的详细经验都在这里了~ 点个 “在看” ,加油鸭~