就是這麼簡單,價值2W刀的Google儲存型XSS和SSRF
Author:xfkxfk@逢魔安全實驗室
前言
今天看到一篇文章《Stored XSS, and SSRF in Google using the Dataset Publishing
Language》,同構造Google的DSPL格式資料包即可觸發儲存型XSS,同時利用DSPL的遠端資源訪問功能即可訪問本地資源從而導致SSRF漏洞。
兩個漏洞Google給力差不多2W美刀,真的是土豪,而且透過這個案例大家可以看到國內外,以及大廠小廠對待安全的態度,對漏洞的價值認知,已經對白帽子的認可是存在很大的差距的。同時最重要的是也向大家說明漏洞挖掘,賞金獵人也不是那麼困難的,只要你認真努力細心就好。
漏洞詳情
儲存型XSS
Google Public Data Explorer是一個方便大資料應用擴充套件及視覺化的工具,比如視覺化展示醫療衛生資料,展示銀行資料等,效果如圖:
Dataset Publishing Language(DSPL)使用XML格式描述資料集的後設資料資訊並且使用CSV格式檔案,示例資料可以從Google官方下載(下載地址見參考連結),然後解壓之後就能看到資料資料檔案了:
當我們下載示例檔案並解壓之後,編輯dataset.xml檔案中描述後設資料的名字,這裡我們使用XML CDATA以免將我們的JavaScript payload解析為XML內容了,修改內容如下:
然後重新打包為zip檔案,比如重新打包為sample.zip或者sample.dspl,然後在如下頁面上上傳打包好的檔案:
上傳之後,等一會重新整理一下,然後點選共享設定,將此資料資源設定為Public on the web許可權,最後你在訪問這個資源連結的時候就會出發XSS,原因是直接將我們修改的info節點裡面的名字直接返回了:
因為前面我們將資源設定為Public模式的,所以任何人都可以搜尋並訪問我們的資源,訪問的時候就會執行XSS
payload導致被攻擊。
SSRF漏洞
漏洞作者透過閱讀DSPL的官方指南發現DPSL允許透過遠端HTTP或者FTP的形式來獲取資料,就是這個功能導致SSRF漏洞,從而可以訪問內部資源,比如內網的資料資源和系統裝置等。
同樣修改dataset.xml檔案,修改內容如下:
這裡我們透過FTP來獲取遠端的資料,修改完之後,重新打包,上傳,之後你會發現因為獲取資源失敗導致返回報錯資訊,洩露了本地SSH的指紋資訊:
當然這裡的SSRF還可以進一步利用,比如掃描埠,識別內網主機及服務等,還可以盲打內網漏洞從而進一步進行滲透。
披露時間表
Jan 2018: Reported to Google
Feb 2018: Verified that the reported issues were fixed
Feb 2018: Rewarded \$5,000 for Stored XSS
Mar 2018: Rewarded \$13,337 for SSR
總結
這兩個漏洞看起來都很簡單粗暴,並沒有多少需要彎彎繞的利用技巧,直接將資料返回web前端;其次透過閱讀官方文件熟悉業務功能,從而發現更多的存在漏洞的點,這就需要白帽子認真仔細的心態了。
參考連結
https://s1gnalcha0s.github.io/dspl/2018/03/07/Stored-XSS-and-SSRF-Google.html
https://developers.google.com/public-data/docs/cookbook#remote_data