XSS-labs靶场通过

level1

打开直接使用name参数进行显示

直接修改url中的name参数为<script>alert('hello')</script>成功触发

level2

输入<script>alert('hello')</script>发现直接将我们输入的攻击代码进行打印了

尝试直接闭合标签

输入"><script>alert("hello")</script>成功触发

level3

直接输入<script>alert('hello')</script>后发现被转义了

输入' onclick='alert(1),闭合value并构造出一个onclick事件。

点击输入框后成功触发

level4

继续尝试闭合value,发现可以成功闭合

继续使用onclick事件进行触发

成功触发

level5

继续使用同样的方法发现行不通了,会把on转变为o_n

尝试使用超链接标签,输入"><a href=javascript:alert(1)>hello</a>构造一个超链接

点击后成功触发

level6

继续使用超链接方法发现也被过滤了

尝试使用大小写进行绕过"><a href=javascript:alert(1)>hello</a>

成功触发

level7

似乎href被整个过滤删除了

尝试进行双写绕过"/><scrscriptipt>alert()</scrscriptipt><"成功触发

level8

发现输入javascript:alert()会被转换为javascr_ipt:alert()

js伪协议可以用在a标签的href里面;iframe标签的src里面;form标签的action以及button的formaction。

尝试使用js伪协议,输入&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#41;,成功触发

level9

继续输入发现无法正确上传,查看源码发现是输入的内容中需要包含http://

因此我们需要注释一个http://,构造为&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#41;/* http:// */,成功触发

level10

仔细检查发现表单中有三个隐藏的输入框

直接传参给t_sort看看,输入<script>alert(1)</script>,发现过滤了<>

直接闭合value,构造onclick事件并且将type修改为text,输入"onclick=alert(1)%20type="text">//

成功触发

level11

发现有四个隐藏的文本框,估测t_ref是referer参数

在hackbar中添加一个referer参数,输入" type="text" onclick="alert(1)

点击输入框后成功触发

level12

继续查看发现四个隐藏的文本框,发现t_ua参数就是User-Agent

在hackbar中修改User-Agent" type="text" onclick="alert(1)

点击输入框成功触发

level13

还是发现了四个输入框,猜测t_cook就是cookie

在hackbar中进行添加cookie为" type="text" onclick="alert(1)发现并没有效果,使用yakit抓包查看发现漏了user=

重新将cookie设置为user=" type="text" onclick="alert(1)后查看发现输入框显示出来了

点击后成功触发

level14

这一关需要访问http://www.exifviewer.org/,目前无法访问,该关卡主要考察exif xss漏洞。

exif是可交换图片文件格式,是专门为数码相机的照片设定的,可以记录数码照片的属性信息和拍摄数据。我们右键图片选择属性查看详细信息就可以看到exif的相关属性。

我们在这些属性中添加xss代码然后上传图片实现弹窗。

level15

ng-include是AngularJS框架的一个指令,用于在HTML页面中包含外部文件或片段。通过使用ng-include,可以将外部HTML文件内容动态的插入到当前的HTML页面中。

ng-include的基本用法如下所示

  1. 在需要包含外部文件的位置,使用ng-include指令,并将要包含的文件路径赋值给指令的属性值

<div ng-include="'path/file'"></div> #文件路径需要用单引号或双引号包含

  1. 可以使用作用域变量作为文件路径的一部分,以实现动态包含

<div ng-include="dynamicPath"></div>

level16

输入<script>alert(1)</script>发现被过滤了,更换为<img src=1 onerror=javascript:alert(1)>发现也被过滤了,其中script被过滤为&nbsp;,空格被转义为&nbsp;

将空格替换为换行符%0a尝试,成功触发

level17

发现含有参数arg01arg02分别对应着embed标签中的内容

embed标签我们需要使用onmouseover函数进行绕过,该事件会在鼠标指针移动到指定的元素上时发生。因此我们构造payload为arg01=a&arg02=b onmouseover=alert(1),成功触发

level18

发现与上一关一样,因此继续使用上一关的payload,成功触发。

level19

flash xss漏洞,目前flash技术全面停止使用,这关就不做了。

level20

flash xss漏洞,目前flash技术全面停止使用,这关就不做了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值