【译】How I hacked Google’s bug tracking system itself for $15,600 in bounties
你有沒有聽說過Google Issue Tracker? 可能不會,除非您是Google員工或最近報告Google工具中的錯誤的開發(fā)人員。 我也沒有,直到我發(fā)現(xiàn)我的漏洞報告現(xiàn)在通過在那里打開一個新線程來處理,除了通常的電子郵件通知。
所以我立即開始嘗試打破它。
那么這個網(wǎng)站究竟是什么? 根據(jù)文檔,問題跟蹤器(內(nèi)部稱為Buganizer系統(tǒng))是Google內(nèi)部使用的一種工具,用于在產(chǎn)品開發(fā)期間跟蹤錯誤和功能請求。 它可在Google以外的地方使用,供需要與Google團隊就特定項目協(xié)作的外部公眾和合作伙伴用戶使用。
換句話說,當(dāng)某人遇到Google產(chǎn)品問題時,該問題就會發(fā)布在問題跟蹤器中。 有道理,對嗎? 作為外部用戶,我們只能看到冰山一角:一小部分預(yù)先批準的類別,以及Google上的某個人明確添加了外部帳戶(例如漏洞報告)的問題 。 但表面下有多少信息?
通過觀察分配給最新公共線程的數(shù)字ID,我們可以輕松估計此工具在內(nèi)部使用的次數(shù)。 Mountain View的工作時間每小時有大約2000-3000個問題 ,其中只有0.1%是公開的。 看起來像這個系統(tǒng)中的數(shù)據(jù)泄漏會產(chǎn)生相當(dāng)大的影響。 讓我們打破它!
嘗試#1:獲取Google員工帳戶
我在發(fā)現(xiàn)問題跟蹤器時注意到的第一件事是,通過將電子郵件發(fā)送到特殊地址參與討論的能力如下所示:
buganizer-system + componentID + issueID @ google.com
(其中componentID是表示類別的數(shù)字, issueID是您正在響應(yīng)的線程的唯一標識符)
這讓我想起最近發(fā)現(xiàn)的一個名為Ticket Trick的發(fā)現(xiàn),它允許黑客利用這種電子郵件系統(tǒng)滲透到組織的聊天系統(tǒng)中。 考慮到這是@ google.com的電子郵件地址,我嘗試使用它注冊Google的Slack團隊,并且我得到的確認頁看上去非常有前途:
唉,Slack沒有收到任何電子郵件。
我能想到的下一個最好的事情是獲得一個帶有@ google.com主電子郵件地址的Google帳戶,這將有助于我在Buganizer上獲得一些額外的權(quán)限。 不應(yīng)該允許從谷歌外部注冊這樣的帳戶:
但是,我發(fā)現(xiàn)了一種繞過此過濾器的方法:如果我注冊了任何其他虛假的電子郵件地址,但未能通過單擊通過電子郵件收到的鏈接確認該帳戶,我可以不受任何限制地更改我的電子郵件地址。 使用這種方法,我將新的Google帳戶的電子郵件更改為buganizer-system+123123+67111111@google.com 。
不久之后,我在相應(yīng)的問題頁面上收到確認電子郵件作為消息:
太好了! 我點擊確認鏈接,登錄問題跟蹤器,然后......
我被重定向到企業(yè)登錄頁面。 不,我的Google帳戶憑據(jù)在那里不起作用。 游民。
盡管如此,這個賬戶在互聯(lián)網(wǎng)上的其他地方給了我很多額外的好處,包括搭便車的能力(免費,也許?),所以它仍然是一個安全問題,為惡意用戶打開了很多門。
接受: 11小時 | 賞金: 3,133.7美元 | 優(yōu)先級: P1
嘗試#2:獲取有關(guān)內(nèi)部通知的通知
另一個引起我注意的問題跟蹤器功能,同時熟悉界面是明星項目的能力。 主題問題意味著您對正在討論的問題感興趣,并且您希望在有人添加評論時收到電子郵件通知。
我注意到這個功能的有趣之處在于在嘗試在我無法訪問的問題上使用它時明顯缺乏錯誤。 訪問控制規(guī)則似乎從未應(yīng)用于此端點,因此我登錄到了我的第二個帳戶,并試圖通過替換請求中的問題標識來為我的主帳戶發(fā)布漏洞報告。 然后我看到這個消息,這意味著這個行動已經(jīng)取得成功:
有1人已經(jīng)為此問題出演過。能夠輕松窺探開放的Google漏洞嗎? 我很快發(fā)布了關(guān)于這個問題的評論,看看我的虛構(gòu)攻擊者賬戶是否會得到通知。
但是,再一次,沒有電子郵件出現(xiàn)過。
出于某種原因,我真的不記得了,我決定在這個上做一些進一步的測試。 因此,我得到了一個最近的問題ID,并且推導(dǎo)了一系列幾千個ID,這些ID應(yīng)該與數(shù)據(jù)庫中的最新問題一致。 然后我全部出演。
在幾分鐘內(nèi),我的收件箱看起來像這樣:
我打開收件箱的第一個想法是“大獎!”。
然而,仔細觀察后,這些線索中沒有什么特別有趣的事情發(fā)生。 顯然,我只能竊聽與翻譯有關(guān)的對話,人們會討論用不同語言傳達短語含義的最佳方式。
我甚至考慮過幾個小時沒有報告,希望我能找到一種方法來提高嚴重程度。 最后,我意識到Google安全團隊可能會對找到可能的數(shù)據(jù)透視方法和變體感興趣,所以我發(fā)送了詳細信息。
接受: 5小時 | 賞金: $ 5,000 | 優(yōu)先級: P0
嘗試#3:游戲結(jié)束
當(dāng)您作為外部用戶訪問問題跟蹤器時,其大部分功能都被剝離,從而使您擁有極其有限的權(quán)限。 如果您想查看Google員工所能做的所有酷炫工作,則可以在JavaScript文件中查找API端點。 其中一些功能被完全禁用,其他功能則完全隱藏在界面中。
在設(shè)計這個限制版本的系統(tǒng)時,有人很好地留下了一種方法,讓我們將自己從CC列表中移除,以防我們對某個問題失去興趣或不想再收到有關(guān)它的電子郵件。 這可以通過發(fā)送像這樣的POST請求來實現(xiàn):
POST / action / issues / bulk_edit HTTP / 1.1 { “issueIds”: 67111111, 67111112 ] “行動”: { “字段名”: “CCS”, “值”:“test@example.com” “操作類型”:“刪除” } ] }但是,我注意到一些疏忽導(dǎo)致了一個巨大的問題:
現(xiàn)在我可以通過替換issueIds的請求中的issueIds來查看數(shù)據(jù)庫中每個問題的詳細信息。 答對了!
我只嘗試查看幾個連續(xù)的ID,然后從一個不相關(guān)的帳戶攻擊我自己,以確認此問題的嚴重性。
是的,我可以查看有關(guān)漏洞報告的詳細信息以及Buganizer上托管的所有其他信息。
更糟糕的是,我可以在單個請求中清除有關(guān)多張票的數(shù)據(jù),因此實時監(jiān)控所有內(nèi)部活動可能不會觸發(fā)任何限速器。
我立即將漏洞細節(jié)發(fā)送給Google,他們的安全團隊在一小時后關(guān)閉了受影響的端點。 驚人的響應(yīng)時間!
接受: 1小時 | 賞金: 7,500美元 | 優(yōu)先級: P0
當(dāng)我第一次開始尋找這種信息泄露時,我認為這將是Google臭蟲的圣杯 ,因為它披露了有關(guān)其他每個bug的信息(例如,HackerOne為類似的東西支付至少10,000美元 )。
但是在找到它之后,我很快意識到這種影響會被最小化,因為所有危險的漏洞無論如何都會在一小時內(nèi)抵消。
我對額外的現(xiàn)金感到非常滿意,并期待在其他Google產(chǎn)品中發(fā)現(xiàn)錯誤。
https://medium.freecodecamp.org/messing-with-the-google-buganizer-system-for-15-600-in-bounties-58f86cc9f9a5
總結(jié)
以上是生活随笔為你收集整理的【译】How I hacked Google’s bug tracking system itself for $15,600 in bounties的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【译】Understanding Bat
- 下一篇: 【译】On Path Independe