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