XSS - Reflected (GET)
Level:Low
沒有任何過濾措施的XXS
任意腳本都可以
<script>alert(1)</script>

Level:Medium
源碼中使用了
addslashes()函數(shù)來進行過濾
Level:High
源碼中使用了
htmlspecialchars()函數(shù)來進行過濾
XSS - Reflected (POST)
與上面的GET方法一樣。
XSS - Reflected (JSON)
Level:Low
本題中
json是在客戶端解析,需要做的就是重新拼合json內(nèi)容
payload:1"}]' ; alert(1) //
原始內(nèi)容:


拼合后內(nèi)容:


Level:Medium / High
加入了
htmlspecialchars()函數(shù)
XSS - Reflected (AJAX/JSON)
Level:Low / Medium
通過
AJAX調(diào)用了xss_ajax_2-2.php?title=的返回
所以2種玩法:
- 在頁面內(nèi)直接輸入
XSS的Payload即可- 在
xss_ajax_2-2.php?title=頁面也可以直接輸入Payload


Level: High
源碼中加入了
JSON.parse()函數(shù)進行了過濾處理
JSONResponse = JSON.parse(xmlHttp.responseText);
XSS - Reflected (AJAX/XML)
Level:Low
本題最關(guān)鍵的在于了解
HTML的轉(zhuǎn)義作用
Payload:<img src=0 onerror="alert(1)">

Level:Medium
源碼中使用了
addslashes()函數(shù)來進行過濾,因為有轉(zhuǎn)義,所以該函數(shù)無效。
Payload:<img src=0 onerror="alert(1)">依然可用
Level:High
源碼中使用了
htmlspecialchars()函數(shù)來進行過濾
XSS - Reflected (Back Button)
Level:Low
本題關(guān)鍵點在
HTTP頭部的Referer
通過網(wǎng)頁源文件查看,onClick引用的是Referer的值
通過Burp Sutie修改Referer的值,以此來達到XSS的目的
Payload:'"><img src=a.png onerror=alert(/xss/)>

Level:Medium
源碼中使用了
addslashes()函數(shù)來進行過濾,因為有轉(zhuǎn)義,所以該函數(shù)無效。
Level:High
源碼中使用了
htmlspecialchars()函數(shù)來進行過濾
XSS - Reflected (Custom Header)
Level:Low
本題需要在
HTTP的頭部加入'bWAPP字段即可 Palyload:bWAPP: <script>alert(1)</script> `

Level:Medium
源碼中使用了
addslashes()函數(shù)來進行過濾,因為有轉(zhuǎn)義,所以該函數(shù)無效。
Level:High
源碼中使用了
htmlspecialchars()函數(shù)來進行過濾
XSS - Reflected (Eval)
Level:Low
通過
GET類型傳遞javascript函數(shù)
將Data()函數(shù)改為alert(1)即可

Level:Medium
源碼中使用了
addslashes()函數(shù)來進行過濾,因為有轉(zhuǎn)義,所以該函數(shù)無效。
Level:High
源碼中使用了
htmlspecialchars()函數(shù)來進行過濾
XSS - Reflected (HREF)
Level:Low
可以發(fā)現(xiàn)name的值直接傳遞到了
<a>的href參數(shù)中
構(gòu)造Payload閉合<a>標簽,然后加入XSS
Payload:1>Vote</a><script>alert(1)</script>

Level:Medium / High
源碼中使用了
urlencode()函數(shù)來進行過濾。
XSS - Reflected (Login Form)
Level:Low
使用萬能密碼:
1' or 1=1'加入XSS的Payload,導(dǎo)致在mysql_error()函數(shù)報錯時,執(zhí)行html語句
Payload:1' or 1=1' <script>alert(1)</script>
報錯信息:Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' <script>alert(1)</script>' AND password = 'bug'' at line 1

Level:Medium
源碼中使用了
addslashes()函數(shù)來進行過濾,因為有轉(zhuǎn)義,所以該函數(shù)無效。
Level:High
源碼中使用了
htmlspecialchars()函數(shù)來進行過濾。
phpMyAdmin BBCode Tag XSS
Level:Low / Medium / High
本題是關(guān)于
BBCode的XSS
在phpmyadmin中的error.php,可以直接飲用外鏈
Payload:error.php?error=+[a@http://www.baidu.com@]XSS@[/a]


XSS - Reflected (PHP_SELF)
Level:Low
沒啥好說的,輸入框直接上
XSS的Payload吧

Level:Medium
源碼中使用了
addslashes()函數(shù)來進行過濾。
Level:High
源碼中使用了
htmlspecialchars()函數(shù)來進行過濾。
XSS - Reflected (Referer)
Level:Low
直接在
Referer里加入XSS的Payload即可

Level:Medium
源碼中使用了
addslashes()函數(shù)來進行過濾。
Level:High
源碼中使用了
htmlspecialchars()函數(shù)來進行過濾。
XSS - Reflected (User-Agent)
Level:Low
直接在
User-Agent里加入XSS的Payload即可

Level:Medium
源碼中使用了
addslashes()函數(shù)來進行過濾。
Level:High
源碼中使用了
htmlspecialchars()函數(shù)來進行過濾。
XSS - Stored (Blog)
Level:Low / Medium
直接在輸入框內(nèi)填入
Payload即可

Level:High
源碼中使用了
htmlspecialchars()函數(shù)來進行過濾。
XSS - Stored (Change Secret)
Level:Low
在輸入框直接插入
Payload, 在數(shù)據(jù)庫中可以看到已經(jīng)插入成功
回到 SQL Injection (Login Form/User) 頁面時,點擊login,就發(fā)現(xiàn)XSS已經(jīng)啟動


第二種玩法:
在網(wǎng)頁源碼中可以找到<input>的hidden標簽,修改為text,然后插入Payload
"><script>alert(1)</script><"

Level:Medium
源碼中使用了
addslashes()函數(shù)來進行過濾。
Level:High
源碼中使用了
htmlspecialchars()函數(shù)來進行過濾。
XSS - Stored (Cookies)
本題講的是
XSS篡改
Level:Low
直接在瀏覽器地址欄里修改
genre參數(shù),即可修改對應(yīng)的Cookies的值

Level:Medium
源碼中使用了
htmlspecialchars()函數(shù)來進行過濾。
Level:High
源碼中限定了
Cookies的值,不允許篡改
SQLiteManager XSS
Level:Low / Medium / High
又是一個應(yīng)用的
XSS
http://172.16.8.134/sqlite/index.php?dbsel=1
構(gòu)造閉合即可
Payload:"><script>alert(1)</script>

XSS - Stored (User-Agent)
Level:Low
User-Agent會存儲在數(shù)據(jù)庫中,同時還是顯示出來
用Burp Sutie 直接抓包,修改User-Agent即可

Level:Medium
源碼中使用了
addslashes()函數(shù)來進行過濾。
Level:High
源碼中使用了
htmlspecialchars()函數(shù)來進行過濾。
