XSS - Reflected (GET)
Level:Low
没有任何过滤措施的XXS
任意脚本都可以
<script>alert(1)</script>
Level:Medium
源码中使用了
addslashes()函数来进行过滤
Level:High
源码中使用了
htmlspecialchars()函数来进行过滤
XSS - Reflected (POST)
与上面的GET方法一样。
XSS - Reflected (JSON)
Level:Low
本题中
json是在客户端解析,需要做的就是重新拼合json内容
payload:1"}]' ; alert(1) //
原始内容:
拼合后内容:
Level:Medium / High
加入了
htmlspecialchars()函数
XSS - Reflected (AJAX/JSON)
Level:Low / Medium
通过
AJAX调用了xss_ajax_2-2.php?title=的返回
所以2种玩法:
- 在页面内直接输入
XSS的Payload即可- 在
xss_ajax_2-2.php?title=页面也可以直接输入Payload
Level: High
源码中加入了
JSON.parse()函数进行了过滤处理
JSONResponse = JSON.parse(xmlHttp.responseText);
XSS - Reflected (AJAX/XML)
Level:Low
本题最关键的在于了解
HTML的转义作用
Payload:<img src=0 onerror="alert(1)">
Level:Medium
源码中使用了
addslashes()函数来进行过滤,因为有转义,所以该函数无效。
Payload:<img src=0 onerror="alert(1)">依然可用
Level:High
源码中使用了
htmlspecialchars()函数来进行过滤
XSS - Reflected (Back Button)
Level:Low
本题关键点在
HTTP头部的Referer
通过网页源文件查看,onClick引用的是Referer的值
![]()
通过Burp Sutie修改Referer的值,以此来达到XSS的目的
Payload:'"><img src=a.png onerror=alert(/xss/)>
Level:Medium
源码中使用了
addslashes()函数来进行过滤,因为有转义,所以该函数无效。
Level:High
源码中使用了
htmlspecialchars()函数来进行过滤
XSS - Reflected (Custom Header)
Level:Low
本题需要在
HTTP的头部加入'bWAPP字段即可 Palyload:bWAPP: <script>alert(1)</script> `
Level:Medium
源码中使用了
addslashes()函数来进行过滤,因为有转义,所以该函数无效。
Level:High
源码中使用了
htmlspecialchars()函数来进行过滤
XSS - Reflected (Eval)
Level:Low
通过
GET类型传递javascript函数
将Data()函数改为alert(1)即可
Level:Medium
源码中使用了
addslashes()函数来进行过滤,因为有转义,所以该函数无效。
Level:High
源码中使用了
htmlspecialchars()函数来进行过滤
XSS - Reflected (HREF)
Level:Low
可以发现name的值直接传递到了
<a>的href参数中
构造Payload闭合<a>标签,然后加入XSS
Payload:1>Vote</a><script>alert(1)</script>
Level:Medium / High
源码中使用了
urlencode()函数来进行过滤。
XSS - Reflected (Login Form)
Level:Low
使用万能密码:
1' or 1=1'加入XSS的Payload,导致在mysql_error()函数报错时,执行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()函数来进行过滤,因为有转义,所以该函数无效。
Level:High
源码中使用了
htmlspecialchars()函数来进行过滤。
phpMyAdmin BBCode Tag XSS
Level:Low / Medium / High
本题是关于
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()函数来进行过滤。
Level:High
源码中使用了
htmlspecialchars()函数来进行过滤。
XSS - Reflected (Referer)
Level:Low
直接在
Referer里加入XSS的Payload即可
Level:Medium
源码中使用了
addslashes()函数来进行过滤。
Level:High
源码中使用了
htmlspecialchars()函数来进行过滤。
XSS - Reflected (User-Agent)
Level:Low
直接在
User-Agent里加入XSS的Payload即可
Level:Medium
源码中使用了
addslashes()函数来进行过滤。
Level:High
源码中使用了
htmlspecialchars()函数来进行过滤。
XSS - Stored (Blog)
Level:Low / Medium
直接在输入框内填入
Payload即可
Level:High
源码中使用了
htmlspecialchars()函数来进行过滤。
XSS - Stored (Change Secret)
Level:Low
在输入框直接插入
Payload, 在数据库中可以看到已经插入成功
回到 SQL Injection (Login Form/User) 页面时,点击login,就发现XSS已经启动
第二种玩法:
在网页源码中可以找到<input>的hidden标签,修改为text,然后插入Payload
"><script>alert(1)</script><"
Level:Medium
源码中使用了
addslashes()函数来进行过滤。
Level:High
源码中使用了
htmlspecialchars()函数来进行过滤。
XSS - Stored (Cookies)
本题讲的是
XSS篡改
Level:Low
直接在浏览器地址栏里修改
genre参数,即可修改对应的Cookies的值
Level:Medium
源码中使用了
htmlspecialchars()函数来进行过滤。
Level:High
源码中限定了
Cookies的值,不允许篡改
SQLiteManager XSS
Level:Low / Medium / High
又是一个应用的
XSS
http://172.16.8.134/sqlite/index.php?dbsel=1
构造闭合即可
Payload:"><script>alert(1)</script>
XSS - Stored (User-Agent)
Level:Low
User-Agent会存储在数据库中,同时还是显示出来
用Burp Sutie 直接抓包,修改User-Agent即可
Level:Medium
源码中使用了
addslashes()函数来进行过滤。
Level:High
源码中使用了
htmlspecialchars()函数来进行过滤。














网友评论