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


 

 

xss秘籍第一式(常彈)

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

 

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

 

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

 

 

 


 

xss秘籍第二式(構彈)

(1)進入自己搭建的靶場,發現仍然有get請求,並為keyword=test

 

 

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

 

 

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

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

 

 

 


 

xss秘籍第三式(繞函彈)

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

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

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

(3)將payload修改一下,發現並沒有什么用,但是,如果將payload修改為:

 

 

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

 

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

 

如' onmouseover='javascript:alert(1)

 

 

但為什么要這要做呢?,如果換成" 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)'

" 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>//

 

 

 


 

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)通過第11、12關的經驗,我們已經成功地破解了其中的奧義,就是根據代碼從各個地方注入xss語句,現在繼續觀察一下第13關的代碼

 

(2)可以看到,這段代碼中,添加了傳說中的cookie,就是我們需要輸入的payload需要在cookie內構造。使用和11、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>'

 


免責聲明!

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



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