在瀏覽國(guó)外網(wǎng)站時(shí)發(fā)現(xiàn)了這個(gè)東西xss-game.,需要翻墻,是個(gè)xss漏洞的游戲。 打開(kāi)網(wǎng)址,介紹了下xss漏洞,然后說(shuō)google對(duì)自己產(chǎn)品的xss安全漏洞提交者給予7500美金的獎(jiǎng)勵(lì),炫下富,接著就說(shuō)通過(guò)一個(gè)小游戲讓大家了解xss,游戲就開(kāi)始了,一共分六關(guān)。 第一關(guān):xss-game. level1 Hello, world of XSS 沒(méi)什么好說(shuō)的,在框里輸入<script>alert(‘haha’)</script>提交,就彈出了個(gè)框,第一關(guān)就愉快地過(guò)了,真對(duì)得起hello world的名號(hào)。 第二關(guān):xss-game. level2 Persistence is key 是個(gè)類(lèi)似微博的提交框,這時(shí)<script>標(biāo)簽就被過(guò)濾了,但是經(jīng)過(guò)反復(fù)測(cè)試和觀察,可以插入圖片,也就是說(shuō),支持<img>標(biāo)簽,那就好辦了,添加個(gè)圖片,圖片的onload事件里寫(xiě)上alert(),第二關(guān)就輕松過(guò)了。 第三關(guān):xss-game. level3 That sinking feeling… 這里沒(méi)有輸入框,通過(guò)切換這三個(gè)圖片我們可以發(fā)現(xiàn)圖片的切換是依賴于url最后的#后面的數(shù)字的,翻看源代碼,最重要的一句: html += “<img src=’/static/level3/cloud” + num + “.jpg’ />”; 就找到了注入點(diǎn),把url改成類(lèi)似這種形式,注意別引起語(yǔ)法錯(cuò)誤就好。 https://xss-game./level3/frame#2.jpg’ onload=’alert()’ s=’1 就把上面那句代碼拼接成了 html += “<img src=’/static/level3/cloud2.jpg’ onload=’alert()’ s=’1.jpg’ />”; 成功彈窗,第三關(guān)通過(guò)。 第四關(guān),xss-game. level4 Context matters 簡(jiǎn)單的說(shuō)就是一個(gè)頁(yè)面,在輸入框輸入時(shí)間,表單提交然后被跳到另一個(gè)頁(yè)面,執(zhí)行一個(gè)定時(shí)器js,折騰了好幾個(gè)跳轉(zhuǎn),但解決思路還是和第三關(guān)一樣,找到onload=”startTimer(‘{{timer}}’)”,timer就是注入點(diǎn),在第一個(gè)頁(yè)面輸入3}}’);alert()(‘,拼接出來(lái),第四關(guān)就過(guò)了。 第五關(guān),xss-game. level5 Breaking protocol 像第四關(guān)一樣,一堆的跳轉(zhuǎn)無(wú)非就是尋找注入點(diǎn),不過(guò)比前面幾個(gè)要復(fù)雜,不能通過(guò)直接上傳腳本或者加入<img onload>這種方式來(lái)注入,但是也給了我們提示,說(shuō)當(dāng)不能用onclick跳轉(zhuǎn)時(shí),我們能用什么辦法跳轉(zhuǎn)呢?答案就出來(lái)了,這個(gè)地方是通過(guò)后臺(tái)腳本生成各種url,其中一處是通過(guò)提交的get參數(shù)next來(lái)生成的<a href=””>,突破點(diǎn)就在這個(gè)地方,在第二步signup頁(yè)面把url改成signup?next=confirm%7D%7D%27%3B%29%2C5000%29%3Balert%28%27hH%27%29%3B%28%7B%27%7B%7B刷新,注意setTimeout的延遲執(zhí)行,alert不能放在setTimeout里面,新的頁(yè)面和之前一模一樣買(mǎi)單時(shí)a href的那個(gè)next鏈接指向的地址帶有了在下個(gè)頁(yè)面js注入的alert,跳到下個(gè)頁(yè)面等待5秒鐘后彈出窗口,第五關(guān)通過(guò)。 第六關(guān),xss-game. level6 Follow the 標(biāo)題在原網(wǎng)頁(yè)上最后 是個(gè)空格,題目就是提示,用空格跳過(guò)對(duì)外部js文件的檢測(cè),在自己的全路徑j(luò)s文件前價(jià)格空格試試就可以了 |
|
來(lái)自: 知識(shí)技術(shù)力量 > 《安全》