當前位置:
首頁 > 新聞 > Google最新XSS Game Writeup

Google最新XSS Game Writeup

* 原創作者:cDdubz8,本文屬

FreeBuf原創獎勵計劃,轉載請註明來自FreeBuf.COM


本文介紹了如何完成谷歌最新的XSSGame的過程,完成了這八個挑戰就有機會獲得Nexus 5x。實際上這八個挑戰總體來說都不難,都是些常見的xss。通關要求是只要能彈出alert窗口即可。


第一關


反射型xss,在搜索框提交的內容最後會出現在結果頁面的html代碼里,沒有任何過濾,直接搜索:





第二關


還是反射型,提交內容後會有一定延遲。通過查看html源碼可以知道延遲的時間(timer=)被直接插入到了img標籤里的onload事件里:




直接請求url:/?timer=』-alert(1)-』,通關。


第三關


展示了一些貓的圖片,當圖片換了後,url只是變化了#後面的內容(#1 > #2),感覺可以通過這個id來反射xss。


查看源代碼:



function chooseTab() {


var html = "Cat " + parseInt() + "
";


html += " + ".jpg" />";



document.getElementById("tabContent").innerHTML = html;



// Select the current tab var tabs = document.querySelectorAll(".tab");


for (var i = 0; i < tabs.length; i++) {


if (tabs[i].id == "tab" + parseInt()) {


tabs[i].className = "tab active";


} else {


tabs[i].className = "tab";


}


}



window.location.hash = ;



// Tell parent we"ve changed the tab top.postMessage({"url": self.location.toString()}, "*");


}


哼,根據上一關的靈感,感覺可以繼續利用一下on事件,修改id後,圖片肯定是不存在的,於是使用onerror:



#1"onerror=alert(1)>




搞定


第四關


打開後是一個註冊頁面,讓我們填寫郵箱地址,註冊完成後通過url裡面的next參數把我們跳轉回主頁,查看源碼:




在html中,鏈接可以是js代碼,比如:




直接請求這個跳轉url:



confirm?next=javascript:alert(1)



第五關


一個F歌(foogle)搜索框,使用了angularJS 1.5.8,感覺是爆過漏洞的,上某網搜索(angularjs 1.5.8 injection)找到利用方法:



?utm_term=&utm_campaign={{x = {"y":"".constructor.prototype}; x["y"].charAt=[].join;$eval("x=alert(1)");}}


第六關

angularJS 1.2版本的搜索框,在搜索框中提交的內容最終進到了class為ng-non-bindable的div標籤里:



#普通的div標籤

Normal: {{1 + 2}}

#輸出:Normal: 3 #ng-non-bindable

Ignored: {{1 + 2}}

#輸出:Ignored: {{1 + 2}}


隨後發現如果直接提交花括弧會被刪掉,於是使用「{」,最後構造這樣一個url:



?query={{a="constructor";b={};a.sub.call.call(b[a].getOwnPropertyDescriptor(b[a].getPrototypeOf(a.sub),a).value,0,"alert(1)")()}}


第七關



通過GET(參數menu)和JSONP請求載入了一個博客頁面,而響應的title,pictures會被處理為h1標籤和img標籤。關卡提示:common CSP bypass。


猜測xss可能會在menu參數里,JSONP里的callback參數可以用來注入我們的js代碼,開始構造我們的url:



?menu=base64_encode()


第八關


要求是對任何用戶都有效,無論是登錄的還是未登錄的,要想通過必須得利用CSRF,self-xss,CSP。/transfer下是個很明顯的反射性xss,所以難度在於怎樣設置csrf_token可以匹配cookie。


最後發現在登錄後會有一個請求設置用戶cookie並把用戶重定向到主頁,url如下:



set?name=username&value=&redirect=index #作孽啊!


根據這個url就可以猜測到後端代碼寫得是有多簡陋。。。


有了這個作孽的東西,我們就可以設置自己的csrf_token並把用戶重定向到/transfer,以便執行我們注入的js代碼。構造如下url:



set?name=csrf_token&value=&redirect=url_encode(/transfer?name=freebufer&amount=3">&csrf_token=)



寫出這種代碼的,在我們那是要被BGM的! 高中生第一次寫writeup,如有不足望擔待,勿噴。


* 原創作者:cDdubz8,本文屬FreeBuf原創獎勵計劃,轉載請註明來自FreeBuf.COM


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

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


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

TAG:FreeBuf |

您可能感興趣

Android Wear更名為Wear OS by Google
Google 關閉 Apple Watch 和 Wear OS 版 Nest 應用
Android Wear 重新命名為 Wear OS by Google
ARCore App已改名為Google Play Services for AR
GitLab已從Azure遷移至Google Cloud Platform
WordPress怎麼生成sitemap.xml?插件XML Sitemap & Google News
Google Android Wear智能手錶操作系統更名為Wear OS by Google
Google Research與Google.ai大統一,合併稱為「Google AI」
AutoKeras:Google AutoML的剋星
Google打造Android Automotive OS
TikTok在印度Google Play和AppStore恢復上架
Google將對Wear OS帶來大更新:Google Assistant加持
Google Chrome的Windows Timeline擴展重新上架
Chrome OS或全面上線Google Assistant
Android Wear 易名,中國版 Wear OS by Google 也來了
Google Guice 媲美Spring的輕量級框架
Google Pixel Slate只是Surface Pro 6的仿製品嗎?
重磅!Google發布Flutter Release Preview 1
Chrome OS還在繼續,Google Pixel Slate發布
「Wear OS by Google」 官網上線,Android Wear 成為歷史