黑客如何盗取Uber用户信息——利用子域名接管轻松搞定 (黑客如何盗取银行卡里的钱)
整理分享黑客如何盗取Uber用户信息——利用子域名接管轻松搞定 (黑客如何盗取银行卡里的钱),希望有所帮助,仅作参考,欢迎阅读内容。
内容相关其他词:黑客如何盗取数据,黑客如何盗取支付宝里面的钱,黑客如何盗取别人的钱,黑客如何盗取密码,黑客如何盗取手机相册,黑客如何盗取别人微信,黑客如何盗取别人的钱,黑客如何盗取别人微信,内容如对您有帮助,希望把内容链接给更多的朋友!
Arne发现,Uber的saostatic.uber*子域名可以被接管。 此外,Uber最近在auth.uber*上部署了单点登录(SSO)*,该*会在所有*.uber*子域之间共享Cookie。 因此,子域名接管可以绕过整个SSO*的身份验证,从而访问到其他所有*.uber*子域名,例如vault.uber*,partners.uber*,riders.uber*等重要业务站点。 什么是单点登录? SSO主要有下面三种类型: OAuth:安全性主要基于白名单的回调URL,以及通过“state”参数进行CSRF保护。*通常存在于URL重定向漏洞,可以*OAuth令牌,绕过身份验证。 SAML:安全性基于服务商和身份提供者之间的XML消息,这些消息需要通过双方预先交换的密钥进行验证。缺点通常在于XML签名绕过。 子域间共享Cookie:安全性基于所有子域的安全性。任何子域存在漏洞,都会导致来自SSO*的共享会话cookie被*。 Uber是如何运用SSO的 Uber之前运用OAuth作为单点登录,现在改成了子域间共享cookies的方式。 浏览任何需要身份验证的uber*子域名,例如客服中心,Uber司机,开发者中心,都会被重定向到auth.uber*。 只要登录并访问另任意一个子域名,浏览器就可以通过SSO*透明地登录,该*在登录一次后会为每个*.uber*子域发布临时会话cookie。 这个*中存在漏洞,就是受害者只需要进行一次SSO身份验证,就会导致任何被接管的*.uber*子域名发送并*有效的会话cookie。 Uber对此采取了不少防护措施,但是都被黑客绕过了。 子域名接管 Uber的一个子域saostatic.uber*通过DNSCNAME指向AmazonCloudfrontCDN,但是主机名没有被注册,这就允许黑客完全接管这个域名。这个情况很像FransRosén在rider.uber*上进行的一次子域名接管。FransRosén 为了证明这个漏洞,ArneSwinnen在被接管的子域名上放了一个HTML文件,表明他已经接管这个了这个子域名。 绕过认证 在Uber的SSO*中,auth.uber*是身份提供者,并为https://*.uber*提供临时共享会话Cookie,为Uber司机、合作商和开发人员提供身份认证信息。 从下面的SSO*图中可以发现,服务提供方会马上销毁传入的临时共享会话cookie,防止出现错误的身份验证,减少数据*的可能。 因此,黑客只能在步骤9到步骤之间*共享会话cookie“_csid”,而且由于浏览器的自动重定向,留给黑客攻击的时间非常短。 虽然黑客还是可以在这么短的时间内进行*,但根据上图显示,这个*中还有一个更方方便用的错误,允许共享会话cookie在步骤后继续保存在浏览器的cookie储存中。 问题在于,如果受害者已经从 黑客只需要重复上图中的步骤3作为步骤,并向 因此,一旦黑客拿到受害者的共享会话cookie“_csid”,他就可以在自己的浏览器上执行正常的登录流程,并在步骤9中把自己的“_csid”cookie替换成受害者的然后*. 实际上,Uber还有另外一层防护措施,存在跨站请求伪造防护。下面是实际的UberSSO*图。 问题在于,GET参数state=CSRFTOKEN,服务提供方riders.uber*加在步骤3中的本地作用域cookie,以及步骤中的验证。黑客没办法从受害者的浏览器中拿到这些值,他们手里只有“_csid”cookie。 不过黑客依然可以从 然后,他可以在步骤3中将 通过这种方式,受害者就会在自己的浏览器上为黑客提供临时的“_csid”会话令牌。 PoC漏洞证明 一个PoC胜过一千张图片解释。在下面的PoC中,假设的情况是 1、受害者打开 2、在受害者的浏览器中打开 页面加载完成后,你将得到三个字符串:URL字符串,“Cookie:”字符串和“Set-Cookie:”字符串。这些就是黑客收集的用来以受害者身份*的所有信息。 3、打开自己的浏览器,设置*代理工具来*请求和相应。打开prepareuberattack.php页面输出显示的URL并*此请求,然后*prepareuberattack.php上的“Cookie:…”字符串并粘贴到请求标头中。 4、重定向到 5、现在黑客就可以在自己的浏览器上以受害人的身份*了。 在真正的攻击中,黑客会在受害者的浏览器上加载saostatic.uber*/prepareuberattack.php,例如通过iframe。 prepareuberattack.php和uberattack.php的页面代码如下: 第一个文件可以托管在任何地方,第二个文件必须托管在被*的子域名上。 通过在这两个PHP文件中将“riders.uber*”更改为uber*的任何其他子域名,黑客可以代表受害者生成这些子域名的有效会话。 建议 Arne提供给Uber的建议有两个方面: 1、通过检查所有的子域名,停用或者解析存在接管风险的子域名。 2、运用安全性更高的OAuth2的SSO*进行单点登录验证。ArneSwinnen