當前位置:
首頁 > 新聞 > 印度餐飲點評網Zomato的Reflected XSS漏洞

印度餐飲點評網Zomato的Reflected XSS漏洞

大家好,今天要分享的是印度美食搜索點評網站Zomato的一個反射型XSS漏洞($250),文中作者詳細描述了具體的漏洞發現過程。漏洞雖然簡單,國內廠商也可能幾乎沒啥賞金,但也可學習學習,參考借鑒。


漏洞發現

最近我在讀《Mastering Modern Web Penetration Testing》(精通流行Web滲透測試技術)這本書,書中提到了https://www.wolframalpha.com/這個網站,可以用它來進行子域名枚舉,效果還不錯。


於是,我就想找個目標上手試試,所以我就在其搜索欄中輸入了zomato.com,之後,枚舉結果中返回了10多個子域名信息。而且,結果中還會返回各個子域名的日均訪問量,這個選項對發現一些偏門網站還是有用的。基於此,返回結果中最後一個子域名secretx.zomato.com引起了我的注意,因為它的日均訪問量才400,是所有子域名中最少的。


我在瀏覽器中打開了secretx.zomato.com, 跳出來一個按鈕 -「sign in with Zomato」,我看了看源碼,也沒什麼特別的。


我點擊按鈕,它就跳轉到了zomato.com,隨後,又跳出來一個顯示框,它上面提示「SecretX Client wants to access you Zomato Account. Accept or Recject」。哦,有點意思。

所以,我又立即回到網站secretx.zomato.com中仔細查看源碼,從中我發現了以下URL鏈接:



https://auth2.zomato.com/oauth2/auth?responsetype=code&clientid=80b39918-90be-49d2-ac52-4a8b1a25bcf1&redirecturi=https%3A%2F%2Fsecretx.zomato.com%2Fuser%2Foauth2%2Fredirecturi&state=2BHoBnVFFKP29L6SerHgEb7OCnBDPO


當點擊Sign in with Zomato的按鈕之後,以上URL鏈接就會被載入。接下來,我在上述URL參數中添加了一些授權驗證的填充值,看看是否能引起一些錯誤響應,果然:


填充進去的參數值竟然都能在響應頁面中有所顯示,如error=xss,errordescription=xsssy,errorhint=xss等,這下我接著來檢查 < 和 > 是否被過濾掉,結果是:NO!

構造Payload


有了這些發現,我就想構造XSS攻擊,但可能由於服務端部署了WAF,所以總是不起效。在這個階段,我花了好多時間,最終也沒啥效果。之後,我就在一些漏洞報告中尋找繞過WAF的技巧,並一個個Payload地進行嘗試。


最終,終於有一個Payload可用了:

<marquee loop=1 width=0 onfinish=alert`1`>XSS</marquee>

但因為alert()、confirm()、prompt()這些形式都被服務端的WAF過濾阻攔了,所以連DOM信息也獲取不到。後來我還試了Payload的URL編碼,但也沒成功。時間馬上就是凌晨3點半了,為了第二天上課不遲到,我想洗洗睡了。


好在我還有點精神,提提神後,我繼續找很多文章博客進行參考,之後我突然想到Somdev之前發布的一個XSS  Cheatsheet -https://github.com/s0md3v/AwesomeXSS,其中提到用cou006efirm()來代替confirm(),構造Payload實現繞過:

cou006efirm()

經過unicode字元編碼,這一試竟然可以!可以獲取到服務端的DOM元素信息了:


上報了漏洞之後,我就一頭睡過去了,第二天醒來手機信息提示:「Zomato has rewarded you 250$」。


PoC


存在XSS漏洞的URL鏈接:


https://auth2.zomato.com/oauth2/fallbacks/error?error=xss&errordescription=xss&errorhint=xss


存在漏洞的參數:所有參數


XSS Payload: 

<marquee loop%3d1 width%3d0 onfinish%3dcou006efirm(document.cookie)>XSS<%2fmarquee>

PoC URL:



https://auth2.zomato.com/oauth2/fallbacks/error?error=xss&errordescription=xsssy&errorhint=%3Cmarquee%20loop%3d1%20width%3d0%20onfinish%3dcou006efirm(document.cookie)%3EXSS%3C%2fmarquee%3E


視頻



看不到?點這裡


漏洞原因


在漏洞報送進程中,Zomato漏洞分類負責人Prateek Tiwari 告訴我,漏洞出在了Zomato採用的開放授權驗證提供商Hydra身上,為了表示感謝,Hydra還把我加入了新版本的發行致謝名單中。


*參考來源:medium

,clouds編譯,轉載請註明來自FreeBuf.COM


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 FreeBuf 的精彩文章:

zBang:可檢測潛在特權帳戶威脅的風險評估工具
雲安全專家(CCSP)認證Pearson VUE香港考試攻略

TAG:FreeBuf |