bWAPP简介
bwapp是一个漏洞演示平台,包含100多个漏洞。可以单独下载安装,也可以下载虚拟机版本。此处给出下载地址:
xss漏洞练习
跨站脚本攻击的终极思路:让输入的内容在页面中回显。
1-XSS - Reflected(GET)
1)low等级 未对输入进行过滤
在用户名和密码输入:<script>alert( 'haha' )</script>
出现两个haha
2)medium等级 因为引号被转义,原方法失效。可用<script>alert( /haha/ )</script>
绕过转义,成功显示。
2-XSS - Reflected(POST)
同上
3-XSS - Reflected(JSON)
观察关键源代码
1
2
3
4
5
6
7
8
9
10
11 > <script>
>
> var JSONResponseString = '{"movies":[{"response":"HINT: our master really loves Marvel movies :)"}]}';
>
> // var JSONResponse = eval ("(" + JSONResponseString + ")");
> var JSONResponse = JSON.parse(JSONResponseString);
>
> document.getElementById("result").innerHTML=JSONResponse.movies[0].response;
>
> </script>
>
可使用闭合json语句的方法,输入"}]}';alert(1);</script>
,成功显示。
4-XSS - Reflected(AJAX/JSON)
AJAX 是一种用于创建快速动态网页的技术。
通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
使用常用语句 <img src=x onerror=alert(1)>
,会出现重复(鬼畜)弹窗。
5-XSS - Reflected(AJAX/XML)
据说使用HTML转义字符或特殊实体可实现,如 <img src=x onerror=alert(1)>
,然鹅在我的浏览器并没有成功。。
6-XSS - Reflected(Back Button)
1
2
3
4
5
6 <p>Click the button to go to back to the previous page:
<input type=button value="Go back" onClick="document.location.href='http://192.168.172.130/bWAPP/xss_ajax_1-1.php'">
</p>
根据代码知——可改变onClick的值,用burp将Referer请求头修改为 "><script>alert(/1/)</script>
便会出现弹窗。
7-XSS - Reflected(Custom Header)
根据提示添加名为bWAPP的请求头,输入 bWAPP=<img src=a.png onerror=alert(/haha/)>
成功弹窗~
8-XSS - Reflected (Eval)
1、low
直接修改url里的date,可直接alert
2、medium等级
原方法失效,可利用eval执行函数
eval(String.fromCharCode(97,108,101,114,116,40,47,120,115,115,47,41))
9-XSS - Reflected(HREF)
可知 $name
的值由我们输入,所以在投票处闭合a标签:
/><img src=a.png onerror=alert(1)>
成功xss
10-XSS - Reflected(Login form)
强行用sql注入的方法成功登陆,在此union上XSS内容即可:
' or 1=1,"<img src=a.png onerror=alert(/1/)>"
迷之成功。。
11-XSS - Reflected(phpMyAdmin)
遇到难题了= =,google一番后仍未找到可行方法…
12-XSS - Reflected(PHP_SELF)
直接用<script>alert( /haha/ )</script>
XSS成功。
关于$_SERVER['PHP_SELF']
的安全问题可参考:http://www.cnblogs.com/52php/p/5670068.html
13-XSS - Reflected(Referer)
添加Referer即可
14-XSS - Reflected(User-Agent)
显而易见,修改User-Agent即可
15-XSS - Stored(Blog)
low与medium等级均可通过<script>alert( /haha/ )</script>
实现。
16-XSS - Stored(Change Secret)
观察源代码,发现有隐藏的输入框~修改type属性由hidden到text:
在隐藏输入框输入"><script>alert( /haha/ )</script><"
,提交后html发生变化,同时xss成功。
17-XSS - Stored(Cookies)
尝试了几种方法,没有成功。。
18-XSS - Stored(SQLiteManager)
在原页面看了一会没发现xss点,然后发现SQLiteManager是一个链接。。考点是这个版本的SQLiteManager页面有xss漏洞。
参考文档 在此。
构造url后,网页源码发生变化:
19-XSS - Stored(User-Agent)
抓包修改User-Agent值,为存储型XSS。
结语
bwapp内的XSS漏洞覆盖面较广,而一般只要找到攻击点基本就能够成功,所以难度不算太大。多数漏洞在不同的安全等级对输入进行了编码,medium对应addslashes,high等级使用htmlspecialchars。通过这次靶机的练习,我弥补了一些知识的空缺,有不少的收获~