大家好!在開始正式的內容之前,請允許我做個簡單的自我介紹。首先,我要說明的是我不是什么安全研究人員/安全工程師,確切的來說我是一名安全的愛好者,這始于兩年前的Uber。我喜歡接觸新的事物,并且每天都在努力提高自己。我也很樂意與分享我學到的東西(每周都會更新哦),因為我確信“分享即是關懷”。雖然,現在在賞金計劃中我已不是新人了,但在安全面前我永遠是新手。好了,話不多說讓我們步入正題吧!
背景
這次,我打算在Uber的子域上挖掘一些“開放重定向”漏洞。雖然,我知道Uber并不將“開放重定向(Open Redirect)”視為漏洞。但我想,如果將它與其它漏洞聯系起來,也許能導致帳戶接管或其它什么更嚴重的安全問題呢?我立刻將想法付諸于了行動。當我在partners.uber.com上尋找端點時,以下URL引起了我的注意:
https://partners.uber.com/carrier-discounts/att/redirect?href=http://www.wireless.att.com/
這個URL是我在一個論壇中看到的,之后我使用Google dorks也找到了一個類似的URL。那么,它是否受開放重定向漏洞的影響呢?答案是肯定的!接下來我要做的就是,在登錄部分找到一個漏洞來組合利用它們。但很不幸,我找了很長的一段時間都沒有任何的發現。對于開放重定向的問題Uber方面回應如下:
“99%的開放重定向具有低安全性影響, 對于影響較大的罕見情況,例如竊取oauth令牌,我們仍希望能再見到它們。”
一周后當我再次檢查了這個URL時我發現,它已無法正常工作。就像現在一樣,無論你輸入什么http參數,它都會將你重定向到https://www.wireless.att.com
so,他們修好了吧。是他們自己發現的還是有人報告的?我不知道,也不想知道。這讓我感到非常的沮喪,但我很快從沮喪當中走了出來。既然這個點被堵死了,那讓我們來找找XSS。
如果我問你“Uber的哪個URL你最眼熟”,你的答案可能是邀請鏈接。你可以在任何地方看到這些鏈接,例如論壇帖子,Twitter,Facebook,Instagram等。
以下是一個邀請鏈接:
https://www.uber.com/a/join?exp_hvp=1&invite_code=bq6ew1w9ue
我嘗試檢查了XSS,但并沒有成功:(
https://partners.uber.com/p3/referrals/ms?i=bq6ew1w9ue
上面這個鏈接具有相同的邀請碼,如果你點擊它它將重定向到其他URL,但這里它為什么不檢查其他參數呢?我決定再次使用dorks進行搜索。
site:partners.uber.com
通過dorks搜索我找到了一個數量龐大的邀請鏈接列表。我要做的就是找到另一個參數,很幸運我找到了一個!
https://partners.uber.com/p3/referrals/ms?i=bq6ew1w9ue&m=ANNIVERSARY&v=1
看起來很酷,但XSS在哪里呢?“v”參數顯示的是他/她作為優步司機工作的年限。我嘗試在這個參數注入一些XSS payload,但并沒有XSS彈窗,接著我檢查了源碼。
原始代碼:
content=”static/images/milestones/anniversary/anniversary_1.png” />
注入payload后:
content=”static/images/milestones/anniversary/anniversary_1 “>.png” />
正如你所看到的,我們的payload并未被過濾,但同時也沒有發生XSS彈窗。根據我以往的經驗,這種情況是因為啟用了內容安全策略(CSP)。什么是CSP? 正如Netsparker博客當中所描述的那樣:
內容安全策略(CSP)標準,是一種有選擇地指定應在Web應用程序中加載哪些內容的方法。這可以通過使用隨機數或散列將特定來源列入白名單來完成“。
因此,只要找到處在白名單之中的域,我們就可以繞過CSP。我們來檢查下Uber的partner.uber.com的CSP標頭。這里的內容有點長,因此我只向大家展示了“script-src”之后的部分:
script-src ‘self’ ‘unsafe-inline’ ‘nonce-9f4b94bf-a195–4d8c-b474–879ae6d1d471’ ‘self’ ‘unsafe-inline’ https://pullo.uberinternal.com https://apis.google.com https://www.google.com https://d1a3f4spazzrp4.cloudfront.net https://*.uber.com https://rules.quantcount.com https://www.google-analytics.com https://ssl.google-analytics.com https://d3i4yxtzktqr9n.cloudfront.net https://d1a3f4spazzrp4.cloudfront.net;
首先,我檢查了rules.quantcount.com并找到了json端點,但沒有太多關于它的信息。但他們將* uber.com的域名均列為了白名單,因此只要我們能夠找到任何帶有回調或類似內容的JSON端點,那么我們就能夠執行XSS。這里我推薦大家一個名為“DOM XSS — auth.uber.com”的博客,大家有空可以去翻翻他的文章:
http://stamone-bug-bounty.blogspot.com/2017/10/dom-xss-auth14.html
在他的這篇文章中他成功繞過了CSP,并且CSP允許他從* .marketo.com獲得一些他想要的東西。
|