xss.haozi.me靶场详解 前言 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F 0x10 0x11 0x12 前言 由于xss.haozi.me是一个在线靶场, 服务部署在 Github,若网速不好,则需要科学上网。
由于本靶场是一个白盒测试的靶场,我们可以看到代码的源码,所以可以直接根据源码的限制的条件来思考如何绕过。
0x00
通过源码我们发现本关没有任何限制所以直接输入 payload:
就可以过关了
0x01
进入第一关分析源码得知,将我们输入的数据包裹在
标签中返回,因为
为RCDATA元素,在此标签中,只能返回
标签无法创建其他标签,所以这一关我们需要将
标签闭合输入其他标签 如果想具体了解
元素为什么无法创建其他标签可以查看这一篇我写的文章 从XSS Payload学习浏览器解码 payload为:
0x02
分析源码可以得知,将输入数据的返回值放在 input 标签中的 value 值里,因为本关没有做任何过滤,所以这里有两种绕过方法。
第一种 :闭合vlaue值直接写input事件 第二种 :闭合input标签,重新写入恶意标签 payload如下:
方法1:aaa" οnclick="alert(1)
方法2:">
由于方法1为点击事件,需要点击文本框才能生效,所以本关推荐方法2。
0x03
进入第三关发现本关通过使用正则表达式来过滤了我们的
()
,将
()
替换为空 若对正则表达式不了解的可以查看这篇文章链接: 正则表达式常用语法解析 所以本关我们的思路就是 尝试写不带括号的标签 ,或者通过 编码的形式来绕过 。
以下给出两种payload方法绕过
方法1:使用反引号代替括号
