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()
函数来进行过滤。
网友评论