Level 1
基础的脚本构造。我利用了hackbar,loadurl获取地址,将name的值修改成script构造的payload,execute:
Level 2
先在输入框中随便输入测试payload,之后看了页面源代码:
没有大小写、双写、编码等问题,因此想着构造闭合payload
"> <script>alert(1)</script>
前面的双引号和尖括号能和前面value做闭合,后面执行弹窗
Level 3
先使用测试payload做测试
查看网页源码,尖括号、双引号、单引号都被编码了,但是单引号没有被编码,所以考虑单引号与事件触发做闭合。
Level 4
查看源码发现尖括号被隐藏了,所以考虑用事件触发做payload
Level 5
测试payload做完测试,查看网页源码。script在R和I中间加了横线,在on中间加了横线防绕过 。所以考虑先做闭合后面跟上超链接,超链接里面的链接属性值是javascript。
Level 6
测试payload查看网页源代码发现:和第五关几乎一样,只不过第一个O成了大写,所以先试用超链接做测试。
没有链接显示了,查源码
href也被规避了,考虑将href替换成大写试试:
Level 7
测试payload查看网页源码,script整个被规避了。但是留了一个on。所以考虑双写绕过
前后script都利用了双写,成功!!!
Level 8
尖括号、双引号都被编码了,从下面href的值也可以看出script会被规避。
一开始考虑了伪协议javascript:alert(1),其中的script被规避了。所以将s进行了html编码:
Level 9
与第八关类似,尖括号、双引号都被编码了,href开始提示链接不合法;先用上一关的payload尝试一下:
链接不合法,尝试baidu.com的链接
是个成功且合法的链接了!!!将baidu.com换成脚本
提示script被规避了
所以:s换成编码,要有能被识别成链接的http://
javascript:alert('http://1')
Level 10
没有输入框了,查看发现是get请求方式传递参数。
所以,利用hackbar工具将参数写在url地址后面
提交请求,网页并没有变化。
没有接收值的keyword,但是有三个参数和空值,可以去尝试三个参数
测试到t_sort的时候有所变化了。点click
Level 11
查看网页源代码,比上一关多了一个ref参数,仿写上一关的payload注入网页并无变化。
根据经验或者变量名猜测t_ref是请求格式里面的referrer变量,所以抓包!
(火狐浏览器装BP插件)
如果直接在referer里面修改值不对劲,所以value处是要闭合的。
Level 12
在hackbar上进行输入值测试,查看网页源代码,是ua的参数值,抓包!
修改ua的值
Level 13
测试payload之后,查看网页源代码。依旧需要抓包
修改cookie中user的内容;(不要整个cookie都修改)
click" type="button" onclick="javascript:alert(1)"
Level 14
太难了
一打开就是这个界面,懵逼ing~~~~~
查看网页源代码:是个内联链接,但是链接网站不成功。
偷学的方法:
需要在本地创建一个xss.php
<<script>
window.alert = function()
{
confirm("good!");
window.location.href="level15.php?src=1.gif";
}
</script>
<?php
$id = $_GET['id'];
echo $id;
?>
访问该php文件,并且id值测试payload
。。。。。。。。
Level 15
越来越考验我为数不多的头发
在后面注入真的非常非常慢啊
发现一个ng-include函数
在html文件中包含外部的html文件;
如果单纯指定地址,必须要加引号'
加载外部html,script标签中的内容不执行,含有style标签样式可以识别
修改参数:
在链接里将第一关的地址和测试payload构造成注入代码
查看源码发现尖括号被编码了。
在经过一上午的模仿尝试之后依旧不行,第一步引入level1.php的文件就失败了,又偷学了另一个师傅的一招:换Angela的js
<script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>
神奇的结果出现了,level1的页面被引出来了
成功!!!撒花✿✿ヽ(°▽°)ノ✿
Level 16
经测试payload可以看出 ,script和on都被过滤了,换成img试一试:
换成img发现空格也被编码了。将空格换成%0a尝试
完成~撒花~~~
Level 17
经过测试payload测试,发现尖括号被编码了
embed标签支持onXXXXXX事件,考虑onmouseover事件
双引号也被编码了;火狐浏览器不支持插件没有办法弹出来。换成谷歌一试:成了!
Level 18
和第十七关很像。差异就是script、字母没有被过滤,大小写敏感,尖括号、双引号被编码了。
emmmm,竟然和上一关一样。好伐
Level 19
Level20
人生无难事 只要肯放弃