xss-labs靶场练习

level1

发现在url中输入的内容会直接反映到页面代码中,那么我们直接开始构造payload,插入一段js代码,get传参:<script>alert(1)</script>

level2

发现传入的内容出现在了input标签的value属性中,接下来直接构造payload

test"><script>alert(1)</script><"

level3

发现与level2类似,直接构造payload

发现payload成功进行拼接了,但并没有执行

查看源代码,发现特殊字符<>被转义了,且value是单引号闭合,此时我们使用JS中的事件来构造payload

'οnclick=alert()'

此时查看页面源代码,发现事件已经加到了input标签上,接下来我们点击输入框,除法该事件

level4

直接输入然后查看源代码

发现与level3类似,闭合方式为双引号,直接构造payload

" οnclick=alert() "

level5

直接输入然后查看源代码,发现与前两关类似,直接构造payload

发现onclick中on被插入了下划线,导致了onclick事件无法使用,所以这时候我们使用a标签来绕过,这里使用到了javascript伪协议:使后面的代码以JS的形式执行

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

level6

还是先进行尝试,发现大部分payload都被过滤了,但是没有大小写过滤,所以可以使用大小写进行绕过

"> <sCript>alert()</sCript> <"

" Onclick=javascript:alert() "

"> <a hRef=javascript:alert()>aaa</a> <"

level7

还是先进行尝试,发现这里面进行了小写转化,将检测出来的on,script,href给删掉了,但是没有关系,我们可以利用双拼写来绕过

比如on,我们可以写成oonn,当中间on被删掉的时候,就变成了on

比如script,可以写成scscriptipt,当script被删掉的时候,就变成了script

"> <a hrehreff=javasscriptcript:alert()>aaa</a> <"

level8

还是先进行尝试,发现这里面添加了小写转化函数,还有过滤掉了src、data、onfocus、href、script、"(双引号)

但是我们能利用href的隐藏属性自动Unicode解码,我们可以插入一段js伪协议

javascript:alert()

利用在线工具进行Unicode编码后得到

&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#41;

接着进行插入

level9

查看源码,发现当false等于false的时候(就是传入的值没有http://)就会执行if,为了防止false===false,我们需要向传入的值里面添加http://并用注释符注释掉否则会执行不了无法弹窗,让函数strpos返回一个数字,构造payload

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

level10

查看源码,发现原来还有其他隐藏的传参方法,这里是get传参t_sort,并过滤掉了<>号,不能闭合插入标签,但是我们还能用onfocus事件,因为这里输入框被隐藏了,需要添加type="text",构造payload

?t_sort=" οnfοcus=javascript:alert() type="text

本关小结:根据源码猜解传参的参数名,隐藏的input标签可以插入type="text"显示 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值