bWAPP学习笔记 - A3 Cross-Site Scripting (XSS)

XSS - Reflected (GET)

Level:Low

没有任何过滤措施的XXS
任意脚本都可以

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种玩法:

  1. 在页面内直接输入XSSPayload即可
  2. 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:'">

Level:Medium

源码中使用了addslashes()函数来进行过滤,因为有转义,所以该函数无效。

Level:High

源码中使用了htmlspecialchars()函数来进行过滤


XSS - Reflected (Custom Header)

Level:Low

本题需要在HTTP的头部加入'bWAPP字段即可 Palyload: bWAPP: `

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的值直接传递到了 href参数中
构造Payload闭合
标签,然后加入XSS
Payload: 1>Vote

Level:Medium / High

源码中使用了urlencode()函数来进行过滤。


XSS - Reflected (Login Form)

Level:Low

使用万能密码: 1' or 1=1' 加入XSSPayload ,导致在mysql_error()函数报错时,执行html语句
Payload: 1' or 1=1'
报错信息: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 '' ' AND password = 'bug'' at line 1

Level:Medium

源码中使用了addslashes()函数来进行过滤,因为有转义,所以该函数无效。

Level:High

源码中使用了htmlspecialchars()函数来进行过滤。


phpMyAdmin BBCode Tag XSS

Level:Low / Medium / High

本题是关于BBCodeXSS
phpmyadmin 中的error.php,可以直接饮用外链
Payload: error.php?error=+[a@http://www.baidu.com@]XSS@[/a]



XSS - Reflected (PHP_SELF)

Level:Low

没啥好说的,输入框直接上XSSPayload

Level:Medium

源码中使用了addslashes()函数来进行过滤。

Level:High

源码中使用了htmlspecialchars()函数来进行过滤。


XSS - Reflected (Referer)

Level:Low

直接在Referer里加入XSSPayload即可

Level:Medium

源码中使用了addslashes()函数来进行过滤。

Level:High

源码中使用了htmlspecialchars()函数来进行过滤。


XSS - Reflected (User-Agent)

Level:Low

直接在 User-Agent 里加入 XSSPayload即可

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已经启动

第二种玩法:
在网页源码中可以找到 hidden标签,修改为text,然后插入Payload
"><"

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


XSS - Stored (User-Agent)

Level:Low

User-Agent 会存储在数据库中,同时还是显示出来
用Burp Sutie 直接抓包,修改 User-Agent 即可

Level:Medium

源码中使用了addslashes()函数来进行过滤。

Level:High

源码中使用了htmlspecialchars()函数来进行过滤。

你可能感兴趣的:(bWAPP学习笔记 - A3 Cross-Site Scripting (XSS))