Egor Homakov:我是如何再次黑掉 GitHub

// 编注:为什么标题是“再次”?2013年,GitHub Page服务启用新域名(从 page.github.com 换到 github.io)之前有被跨域攻击的危险。Egor Homakov 写了一篇博文证实。

这篇文章是关于我将5个危险性不高的漏洞组合起来,构造一个简单却高危漏洞的故事。利用这个漏洞,我可以进入github上的用户私有代码仓库。这些漏洞都已经私下报告并及时修复了。

下面是我的邮件时间线:

几天前,GitHub正式推出了一个赏金计划,这个计划对我来说是研究GitHub OAuth问题的绝佳动力。

漏洞1. 利用/../绕过redirect_uri 验证

我最先发现的是:

如果提供了的话,重定向URL的主机和端口必须严格匹配回调URL。重定向URL的路径只能引用回调URL的一个子目录。

然后,我尝试用/../进行路径遍历,我成功了。

漏洞2. 在获得令牌的终端缺少重定向URI验证

仅有第一个漏洞没有什么价值。在OAuth2协议中有保护机制防止‘泄露的’重定向URI,每个code参数都签发给对应的‘redirect_uri’。要获得访问令牌必须提供你在认证流程中使用的准确的redirect_uri。

redirect_uri string 你的app中用户认证后返回给用户的URL。查看更多细节点击 redirect_urls.
不幸的是,我决定研究一下这个保护机制有没有被正确实现。

它确实是有缺陷:不管客户端发送什么重定向uri来获得令牌,提供商都会回复一个有效的访问令牌。

要是没有第一个漏洞,第二个漏洞也会要毫无价值。但是,它们却组合成一个很强大的漏洞——攻击者可以劫持一个签发给泄露的重定向uri的授权令牌,然后把这个泄露的令牌用在真正的客户端回调URl上,从而登陆受害者的账户。顺便说下,这和我在VK.com发现的漏洞一样。

这是一个严重的问题,而且可以用来危害所有依赖“用GitHub登陆”功能的网站。我打开了应用页面来查看哪些网站应该检查一下。这个部分引起了我的注意:

Gist、Education、Pages和Speakerdeck(注:前三个是Github的频道站,后面是旗下站点)都是官方预先认可的OAuth客户端。我没有找到Pages和Education的client_id,Speakerdeck又超出了奖金范围(我在那里发现了账户劫持,并获得了$100)。那么,我们还是在Gist上寻找重定向泄露的页面吧。

漏洞3. 在gist中注入跨站图片

基本上,泄露的Referers有两个向量:用户点击一个链接(需要交互)或用户代理载入一些跨站资源,比如
我不能简单的注入(img src=http://attackersite.com),因为这会替换成camo-proxy URL,这样就不能把Referer头传递到攻击者的主机。为了能够绕过Camo-s 过滤器,我用了一个小技巧:

你可以在开放重定向漏洞进展这篇文章中看到更多细节

///host.com 被Ruby的URI库解析成一个相对路径URL,却被Chrome和Firefox视为一个相对协议URL。下面是我们精心构造的URL:

https://github.com/login/oauth/authorize?client_id=7e0a3cd836d3e544dbd9&redirect_uri=https%3A%2F%2Fgist.github.com%2Fauth%2Fgithub%2Fcallback/../../../homakov/8820324&response_type=code
当用户载入这个URL时,Github会自动302 重定向自己。对应地址:

https://gist.github.com/auth/github/callback/../../../homakov/8820324?code=CODE
但是用户代理载入为:

https://gist.github.com/homakov/8820324?code=CODE
那么用户代理会把发送请求的CODE泄露给我们的:

Screen Shot 2014-02-05 at 5.15.39 PM
一旦我们获得受害者的CODE,我们点击 :

https://gist.github.com/auth/github/callback?code=CODE
瞧,我们登陆进了受害者的账号,然后我们可以进入私有的gists

漏洞4. Gist在cookies里暴露了github_token

我很想知道Gists是怎么把用户会话和解码的_gist_session存放在cookie(普通的Rails Base64编码的cookie)里:
Screen Shot 2014-02-05 at 5.59.16 PM
天啊,又一个OAuth的反面教材!客户端绝不应该暴露真正的访问令牌给用户代理。现在我们可以用这个github_token代表受害者账户来执行API调用,并且不再需要Gist网站。我试着访问私人代码库:
Screen Shot 2014-02-05 at 6.00.45 PM
该死的,令牌的范围显然仅仅是Gists……

漏洞5. 对Gist客户端的自动授权

我的漏洞利用的最后部分。由于Gist是一个预先授权的客户端,我猜想Github也自动认证了Gist客户端请求的其他范围。我果然对了

我们现在要做的只是把构造的URL载入到受害者的浏览器:

https://github.com/login/oauth/authorize?client_id=7e0a3cd836d3e544dbd9&amp;redirect_uri=https%3A%2F%2Fgist.github.com%2Fauth%2Fgithub%<strong>2Fcallback/../../../homakov/8820324</strong>&amp;response_type=code&amp;<strong>scope=repo,gists,user,delete_repo,notifications</strong>

用户代理泄漏了受害者的CODE,攻击者使用泄漏的CODE登陆进受害者的Gist账户,解码_gist_session来盗取github_token等等。

私人代码库,读写权限等等——都秘密失窃,因为所用github_token是属于Gist客户端的。完美的犯罪,不是吗?

赏金

$4000的奖励真是太丰厚了。有趣的是,对他们来说购买我4~5个小时$400的咨询服务,只需要$1600,这会更便宜。重要的是也要有众包安全。最好是两者都用:)

原文链接: Egor Homakov 翻译: 伯乐在线 - 50infivedays

文章转载自 开源中国社区 [http://www.oschina.net]

时间: 2024-09-20 08:24:06

Egor Homakov:我是如何再次黑掉 GitHub的相关文章

如何黑掉一台大切诺基?你需要的资料和工具都在这里(请勿在家尝试)

早在2015年,Charlie Miller和Chris Valasek这对黑客侠侣就成功黑掉了一台吉普大切诺基,遥控油门刹车导致车辆失控,并在当年拉斯维加斯的BlackHat黑帽大会上出尽风头,这也直接导致克莱斯勒召回了140万台切诺基升级安全补丁. 但是事情并未完结,Chris同志16年再次黑掉了大切诺基(跟这款车有仇?),并且公开了整个攻击的所有笔记.文档和工具包(包括他们自己写的Pyhton攻击文件).而这些资料,即使在今天来看,依然颇具研究价值. 你上你也CAN? 众所周知CAN(控制

离职员工一夜“黑掉”东家两网店

晚报制图 邬思蓓 编者按:今日,本报与市公安局网安总队联合推出 "网警在线"专栏,使之成为网警与市民群众及时互动.有效沟通的窗口,并将其建设成警民联手共同预防网络犯罪的桥梁. 晚报记者 陆慧 报道 同行间恶意竞争,无所不用其极,一怒之下竟出手"黑"对方.黑客技术谁来管?今天上午,记者从上海市公安局网安总队获悉,截至今年3月底,本市网警共侦破黑客攻击案件10起,抓获20人.今年以来,共侦破网络违法犯罪案件1137起,抓获各类违法犯罪嫌疑人2017人,打击犯罪团伙275

注意!你的各种“账号”最近可能被轻松黑掉

 4月1日消息,今天,乌云漏洞报告平台发文提醒,由于受到OAuth认证协议漏洞影响,大多数网友的网络账户很可能被黑客轻松黑掉.乌云漏洞平台介绍称,因为OAuth认证协议导致的安全风险,因企业的错误使用,可导致黑客利用这个漏洞登录该任意用户的账号(OAuth登录的用户).也就是说,在相关企业没有做出防范之前,你的各种网站.手机APP账号,甚至还包括网络名人的账户,都可能遭到黑客窥探. 下面是来自乌云漏洞报告平台的提醒: 问题来自前两天的中午,新浪发来一封漏洞预警邮件,印象中这好像是第一次企业发出如

阿里安全资深专家谢君:如何黑掉无人机

2017年11月18日,看雪安全开发者峰会在北京举行.阿里安全资深专家谢君做了题为<如何黑掉无人机>的演讲,并现场演示如何远程劫持一台无人机,引发现场热烈的掌声. 以下为谢君的现场演讲内容. 如何黑掉无人机 今天我分享的议题是如何黑掉某品牌的无人机.我在研究无人机的过程中从物理接触和非物理接触两个方面对整个无人机进行系统化的研究,研究的过程中其实也是一个学习的过程,所以今天我想跟大家分享一下我在这个研究过程中的一些收获和所学到的一些东西. 自我介绍一下,我现在是在阿里安全负责IoT安全攻防研究

看我如何黑掉PayPal:从任意文件上传到远程代码执行

本文讲的是看我如何黑掉PayPal:从任意文件上传到远程代码执行, 漏洞发现过程 在上一篇文章中,我描述了我是如何破解OSCP证书的,破解起来非常困难,大概花了我四个多月的时间,但是我如果我不去挖漏洞的话,意味着我就没有零用钱了. 正常人的周末充满了饮料,派对,乐趣等等.或者看权力的游戏 ? 像我这样的人,在周末的时候,会看一些博客或者YouTube视频.我打了Burp(关闭了拦截器)并访问了PayPal的漏洞奖励计划页面,于是我发现了如下图所示的内容: 上图显示的是我访问http://payp

他们在美国万千黑客面前又黑掉了一次特斯拉

  2016年9月,特斯拉首席执行官埃隆·马斯克亲自写信向提交特斯拉致命漏洞的腾讯安全联合实验室科恩实验室表示了感谢. 科恩实验室接过了这封满载荣誉的信,在约一年后的现在,又一次黑掉了特斯拉. 这一次,还是在 Black Hat 这种酷炫狂拽吊炸天的黑客大会上,一堆打了鸡血.黑天黑地黑世界的黑客面前. 根据腾讯科恩实验室的官方博客,科恩实验室在 2017 年再次发现多个高危安全漏洞并实现了对特斯拉的无物理接触远程攻击,能够在驻车模式和行驶模式下对特斯拉进行任意远程操控. 也就是说,这次利用的漏洞

19岁黑客为推销防火墙产品黑掉联众网游

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 电脑天才黑掉联众网游 为推销公司研制的网络安全产品,上海一家网络公司的老总罗春竟伙同3名员工,利用黑客技术对北京联众电脑技术有限公司相关服务器进行长达一个月的拒绝服务攻击(DDOS),致使联众损失百万余元.昨天上午9时,罗春等4名犯罪嫌疑人在海淀法院公开受审. 事件:为卖产品"黑"联众 据检察机关指控,从2007年4月26

都说打印机不安全,那究竟有多少种黑掉它的姿势呢?

本文讲的是都说打印机不安全,那究竟有多少种黑掉它的姿势呢?,在办公室里,最容易被黑掉的设备是什么呢? 电脑?手机?路由? 不不不,都不是.现在想黑掉这些设备,需要等待机会,比如有一枚特别好使的漏洞(像最近 Windows上的永恒之蓝漏洞). 有个设备不在关注视线内,但比上面的设备都容易黑多了,那就是打印机. 现代打印机大多具备联网功能,使用安全特性极少的嵌入式系统,内核老旧固件更新很麻烦,是天然的攻击载体. 过去国内外已经出现过多起案例,比如有黑客通过内部打印机入侵银行.运营商网络,进去盗窃.为

黑客再次黑马拉多纳官网

黑客再次黑了马拉多纳官网 阿根廷赢球秘鲁人疯狂报复 "圣帕勒莫"挽救了阿根廷队,但阿根廷队却没有摆脱"水深火热"的境遇.秘鲁人开始对马拉多纳和阿根廷队进行疯狂的报复,不仅秘鲁队员跳出来表示阿根廷球员在场上求他们放水,甚至还有秘鲁黑客出马,黑掉了马拉多纳的个人网站.另外,阿根廷和西班牙媒体也纷纷爆料称,在本周四打完秘鲁之后,马拉多纳就要下课了. 秘鲁球员:阿队长求我放水 输球之后,秘鲁人显得非常不服气,不仅在报纸上大肆抨击阿根廷队,甚至还有球员透露,阿根廷队长马斯切拉