Friday 10 January 2014

Youtube - 鲜为人知的视频泄露事件

Mac 19, 2014 更新:  Youtube API v2 即将在 April 20, 2015 全面停止服务。

2012年尾, Youtube 推介了新的API, 一般上称之为 Youtube Data API v3, 也就是第三版本的 API。这个版本3不是为了彻底代替版本2, 因为少了很多功能(起码目前的趋势是这样)。


那么, API 能有什么漏洞呢?


非公开影片的介绍:

除了私人影片设定外, Youtube提供了另外一种选择, 也就是非公开影片 (unlisted) 设定。


影片隐私权设定, 官方的介绍可以浏览 https://support.google.com/youtube/answer/157177?hl=zh-hant


非公开的影片, 会有一个半开的锁头图标在视频标题的左边。把滑鼠箭头指向那个锁头, 会出现  “這部影片是非公開影片,只有擁有影片連結的用戶才能觀看這部影片。” 这个说明。


如果你要分享的时候, 会有提醒出现。 "這是不公開的影片。分享前請三思。"





故事:

在去年的某一天, 我刚好在研究 Youtube API v3, 却无意中发现奇怪的现象。

要得到一个频道, 主要有两种方法:

1. search API (从cache server获取), 这个除了分页bug, 没有什么大碍

2. channels API 获得 playlist ID, 然后再请求 playlistItems API 。其中一种 playlist ID 是属于uploads 类别 。

https://www.googleapis.com/youtube/v3/channels?part=snippet%2C+contentDetails&id=UCxJlPlbhLmM3pKrPsnidRuA&key=API_KEY




如图所示playlist ID  是 UUxJlPlbhLmM3pKrPsnidRuA

然后用那个 playlist ID 请求视频的的资料:
https://www.googleapis.com/youtube/v3/playlistItems?part=snippet%2C+contentDetails%2C+status&maxResults=2&playlistId=UUxJlPlbhLmM3pKrPsnidRuA&key=API_KEY


正常的情况下, 总数量都是少过或等于网页真实可观看的视频数目 (扣除了国家IP地址不能看的因素):





但是奇怪的事情来临了,如果总数超过呢?

我运气不错, 刚好研究的频道, Youtube 官方频道 uploads playlistItems API , 排在前五个视频的, 都是非公开视频 (Youtube工程师团队在 test 着 live streaming, 当然不公开视频的地址)。太过明显了, 否则正常人是不可能发现的。

我把所有的 part parameter都实验, 发现那些视频的共同点只有一个,  就是 privacyStatus




Youtube 官方频道排在前五个视频的非公开视频:

http://www.youtube.com/watch?v=SaxZLZ-i24I
Lightbox Test #1 http://www.youtube.com/watch?v=Yrp9FModejA Live Test #1 http://www.youtube.com/watch?v=687ljy1s2Ho Live Test #2 http://www.youtube.com/watch?v=yFc4B9Jhprc Lightbox Event Placeholder http://www.youtube.com/watch?v=dG4xaLn2W6s Live Event Placeholder





其中一个例子:






第二个例子:






网络红人Ling BigYong 未公开的视频, 观看次数为47:




首相大人未曾公开的视频, 观看次数为17:





香港的 my little airport 绝对珍藏版:




谷歌工程师频道, 1 view, 全球只有一个家伙看过。






我当然是分秒必争写了一个python script 大量收集各大频道的珍藏品。如图所示,大量收集 Google Developers频道 的非公开视频私人视频




哦, 如上图所示, 私人视频也囊括其中了。 你可能会问,  私人视频又有什么用呢? 当然有, 除非是已移除的视频, 然而私人视频是可以通过缩略图 ( thumbnail) 来一窥究竟的。


缩略图:


通过增加缩略图页数来一窥究竟:



为了争取时间大量收集, 我过了一天才通知 Google, 被别人强先一步通知了。


修补了漏洞才通知你sorry. 也是情有可原的, 总不能说,
 "Sorry, 你拿不到钱, 但是请别公开, 等我们修补好漏洞先"


No comments:

Post a Comment