XSS-labs靶场通关秘籍(level 13-16)
level 13
进入靶场,使用GET请求方式传递参数keyword的值,使用测试xss注入代码进行注入,查看过滤
<script " ' Oonn>
右键查看页面源码,发现没有接收keyword参数值的变量,但是有四个隐藏变量,向四个隐藏变量发送xss注入代码进行注入
使用GET请求方式向t_link变量传递参数
click" type="button" οnclick="javascript:alert(1)
查看页面源码发现t_link没有接收传递的参数值,但是t_cookie变量里出现了值:call me maybe?
抓取请求数据包,发现在请求数据包中cookie变量传递的参数与页面源码中显示的一致
修改cookie的值,写入xss注入代码
放包,页面出现按钮,点击提示通过
level 14
进入靶场,发现浏览器在请求这个地址:http://www.exifviewer.org/
,等待请求完成后发现这个网站没有回应
在网上查找资料发现该网站已经挂了,查看源码发现该关卡使用iframe标签将该网站的URL地址包含到该页面中进行访问
在本地创建一个xss.php文件,将此处iframe标签中的URL地址修改为本地xss.php文件的地址
<script>
window.alert = function()
{
confirm("完成的不错!");
window.location.href="level15.php?src=1.gif";
}
</script>
<?php
$id = $_GET['id'];
echo $id;
?>
"http://127.0.0.1/xss/xss.php?id='<script>alert(1)</script>'"
防止页面直接请求http://www.exifviewer.org/
,将burp开启进行拦截
修改页面iframe包含的URL地址,页面提示通关
level 15
进入靶场,发现页面使用GET请求方式传递参数
直接使用测试xss注入代码进行注入,测试过滤
<script " ' Oonn>
查看页面源码,发现存在过滤,过滤<>
和双引号"
但是页面使用ng-include指令
AngularJS ng-include 指令 | 菜鸟教程
ng-include 是 angular js 中的东西,其作用相当于php的include函数。这里就
是将1.gif这个文件给包含进来。
ng-include 属性的值可以是一个表达式,返回一个文件名。
直接将第一关的URL地址构造成xss注入代码进行注入
?src='http://127.0.0.1/xss/level1.php?name=<img src=1 onerror=alert(1)>'
发送请求,页面弹窗提示通关
level 16
进入靶场,看到GET传参,直接上xss代码测试
<script " ' Oonn>
根据页面回显发现将script过滤,大小写敏感
查看页面源码发现将script和空格都替换为实体编码:
,此时的空格不能正常使用,所写的xss代码也会变成连在一起,不能正常解析
标签<center>
所支持的事件属性
在 HTML 4.01 中,<center>
标签支持如下事件属性
使用%0A代替空格
http://127.0.0.1/xss/level16.php?keyword=<img%0asrc=1%0aοnmοuseοver="alert(1)">
点击发送请求,页面出现图片,当鼠标移入图片时页面提示通关