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