xss靶場大通關(持續更新ing)


 

xss祕籍第一式(常彈)

(1)進入本身搭建的靶場,發現有get請求,參數爲name,可進行輸入,並會將輸入的內容顯示於網頁頁面

 

(2)使用xss的payload進行通關:

 

http://127.0.0.1/xss/level1.php?name=<script>alert(1)</script>javascript

 

 

 


 

xss祕籍第二式(構彈)

(1)進入本身搭建的靶場,發現仍然有get請求,併爲keyword=test

 

 

(2)使用F12或者調用ctrl+shift+i調出網頁源代碼查看欄,對可輸入的地方進行查看,發現輸入框是一個value值的輸入,而後咱們進行js惡意代碼拼接

 

 

 (3)加載payload:以下,一邊進行js代碼調試,一邊進行查看,順利通關

"/><script>alert(1)</script>//php

 

 

 


 

xss祕籍第三式(繞函彈)

(1)查看頁面,仍然是get型請求,會與第二關有什麼不一樣呢?咱們查看源代碼:

(2)嘗試着會value的值進行js惡意代碼輸入,發現頁面並無彈框,那應該怎麼辦呢?

"/><img src=# onerror=alert(1)/>//html

(3)將payload修改一下,發現並無什麼用,可是,若是將payload修改成:

 

 

"/><script>alert(1)</script>//java

 

上述並不可用,大概是後端使用了htmlspecialchars函數進行過濾,所以咱們可使用不帶有尖括號的特殊字符進行嘗試:後端

 

如' onmouseover='javascript:alert(1)cookie

 

 

但爲何要這要作呢?,若是換成" onmouseover=" javascript:alert(1) ,卻並不會成功

這是由於,<input type='text' value=' &#039 onmouseover=&#039 javascript:alert(1)'>

只有使用單引號,轉換出來的&#039纔有意義

 

 


 

xss祕籍第四式(構繞函彈)

 

(1)來到第四關卡,發現使用第三關的payload已經再也不起做用了,那咱們應該怎麼辦呢?此時思考一下,它的源代碼確定也是如此不只對<>括號進行了過濾,並且還進行了htmlspecialchars()函數過濾,那咱們是否仍是能夠不輸入<>,而且根據input的標籤進行js構造.

 

(2)輸入payload以下:

 

" oninput='alert(1)'xss

" onmouseover='alert(1)'函數

 

 

 

 

這樣,咱們的第四關就通關成功啦!

 

 


 

xss祕籍第五關 (閉新java彈)

 

 

(1)來到第五關卡,仍然和前面的關卡十分類似,這個時候,基於愈來愈難的道理,咱們首先嚐試一下輸入和第四關同樣的payload

 

 

(2)發現過濾了on,那咱們應該如何避免過濾on呢,嘗試使用大小寫轉換,發現仍然對on進行了過濾

 

 

(3)那咱們能夠試試對這個標籤使用編碼的方式進行繞過過濾,發現網頁彷佛沒法識別,這個時候不要灰心,咱們再把思惟放得簡單一點,不使用on的點擊事件,咱們回到最初的最簡單的想法,嘗試使用一下<>進行操做,彷佛並無進行轉義或是過濾。,嘗試一下的payload:

 

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

 

 

 

 (4)彷佛發現了被單獨彌留下來的一個超連接版的xss代碼,咱們點擊進行嘗試,很不錯,這個連接盡然彈出了xss代碼

 

 

 


 

xss祕籍第六關(大小寫)

(1)此次咱們直接進入主題

 

 (2)構造payload,繞過對href的過濾,以下所示:變換大小寫

 

"/><a Href='javascript:alert(1)'>a</a>//url

 

 

 


 

xss祕籍第七關(重複寫)

(1)這一關是直接作了關鍵字的過濾操做,咱們沒法使用href,src等觸發xss的惡意js

 

 

 (2)思考一下,是否可使用別的不使用這些標籤也能夠觸發xss的payload呢?可是連script標籤也被過濾了!!使用大小寫仍然沒法過濾,那咱們是否可使用重複寫標籤進行xss攻擊呢?構造payload以下所示,發現惡意js成功執行

 

 "/><ScrscriptipT>alert(1)</ScriscriptPT>//<

 

 

 

 

 


 

xss祕籍第八關(DOM)

(1)進入第八關卡,發現這一關很是可能屬於Dom型xss,所以咱們須要根據友情連接進行惡意js的構造

 

 

 

(2)javascript被過濾了,那試試大小寫或者重複寫,彷佛都是沒法彈框的,那咱們須要換個思路,將這個a標籤閉合,再從新使用新的js標籤,可是,通過嘗試,咱們會發現,這個不只沒法重複寫,也沒法使用大小寫進行繞過。

 

 (3)嘗試對javascript這個函數的關鍵部分進行編碼操做,不管是16進制編碼仍是Unicode編碼都可以

 

 

 

 


 

 xss祕籍第九關(代碼審計)

                                                                                                                                                            (1)當進入第九關的時候,咱們須要開始代碼審計了。從圖中能夠看出這一欄不只對代碼進行了過濾,並且還在裏面加了http的暗箱操做,若是沒有"http://"這幾個字符,就返回連接不合法。

 

 

 

(2)所以能夠輸入以下payload:&#x0072;(是Unicode編碼,r的化身)%0d(空格的url編碼)

javasc&#x0072;ipt:%0dhttp://www.xixi.com%0dalert(1)

 

 

 

 

 

 

 

 


 

 xss祕籍第十關(改類型)

 (1)進入第十關

 

<input name="t_sort"  value="x&t_sort="type="text" onclick="alert(1)" type="hidden">

 

竟然要get兩個參數。這但是盲猜都猜不到的,而後,彷佛只過濾了尖括號的樣子,所以能夠隨意構造,type是爲了讓頁面展示出一個輸入框,一點擊就會彈出alert

 

咱們試試構造別的payload:

 

    發現輸入的文本都沒法顯示,這樣就能夠猜想出來,這裏只能改變一下keyword的類型,type=text

 

 

 

 


 

 xss祕籍第十一關(改Refere)

從第九關開始,就須要代碼審計了,那麼,讓咱們一塊兒來看看第十一關作了哪些代碼上的限制吧!

$str = $_GET["keyword"];
$str00 = $_GET["t_sort"];
$str11=$_SERVER['HTTP_REFERER'];//將payload從http頭的referer欄獲取過來,注意,這就是最重要的,誰也不知道咱們須要從referer構造payload
$str22=str_replace(">","",$str11);
$str33=str_replace("<","",$str22);
echo "<h2 align=center>沒有找到和".htmlspecialchars($str)."

首先,從代碼能夠發現,過濾了尖括號與使用了htmlspecialchars函數,t_sort的值來自 上一個鏈接跳轉的地址,因此咱們直接抓包把referer裏繞過,23&t_sort="type="text" onclick="alert(1)

 

(1)在第十關完成的瞬間,咱們使用burp抓取數據包

 

(2)而後修改referer這一欄的爲咱們的payload,payload能夠與第十關的相同,能夠發現順利進入了第十一關,而且也有彈出一個輸入的text格式框

 

 (3)此時只要點擊一下那個text輸入框,咱們就能順利通關!

 

 

 


 

 xss祕籍第十二關(改User-Agent)

(1)來到第12關,咱們發現這個界面彷佛與11關無比的雷同。

(2)代碼審計,發現與11關惟一不一樣的就是此次須要輸入的payload來源再也不是refer了,而是user-agent

 

(3)咱們按照上一次11關的過關實驗方法,修改user-agent來試試xss,發現一樣的方法也是OK的,即:在11關過關的時候抓包,修改咱們的User-Agent頭,而後直接在burp裏改成以下payload便可:

keyword=123&t_sort="type="text" onclick="alert(1)

 

 

 


 xss祕籍第十三關(改cookie)

(1)經過第十一、12關的經驗,咱們已經成功地破解了其中的奧義,就是根據代碼從各個地方注入xss語句,如今繼續觀察一下第13關的代碼

 

(2)能夠看到,這段代碼中,添加了傳說中的cookie,就是咱們須要輸入的payload須要在cookie內構造。使用和十一、12關一樣的方法,注入xss語句

(3)放行數據包,順利通關!

 

 

 


 

 xss祕籍第十四關(略。。。)

(1)在代碼審計後,才忽然發現14關有點不同凡響,它的頁面是這樣的,並且還一直在加載中

 

 

 

 (2)反正都不會彈alert(1),乾脆就直接進入15關吧!哈哈哈哈!

 

 

 


 

xss祕籍第十五關(文件包含)

(1)能夠很明顯的發現,這一關只有一個src,加載了一張圖片,並告訴你:想個辦法本身走出去吧!

(2)彷佛存在文件包含漏洞,由於這裏面php代碼echo了一個ng-include的屬性,並把圖片資源加載了進來!而咱們已知的文件包含版xss又在哪裏呢?讓咱們從新回到第一關,在第一關是個特別簡單的什麼也沒有過濾過的xss文件,咱們只要將其包含過來就能夠通關成功了!咱們直接輸入以下payload就能夠通關成功!

http://127.0.0.1/xss/level15.php?src='level1.php?name=<script>alert(1)</script>'

相關文章
相關標籤/搜索