天天看点

XSS训练网站XSS Challenges所有题目解(中篇)

上篇链接:我是上篇

下篇链接:我是下篇------待续

目录

      • Stage #6 html事件中的XSS
      • Stage #7 列表中的XSS
      • Stage #8 javascript中的XSS
      • Stage #9 UTF-7中的XSS
      • Stage #10 有过滤的XSS(1)
        • 解法一
        • 解法二
      • Stage #11 有过滤的XSS(2)
      • Stage #12 有过滤的XSS(3)

Stage #6 html事件中的XSS

用事件即可解决,举个例:下面三种都可

onlick事件

onmouseover事件

unload事件

" οnclick="alert(document.domain)
" οnclick="alert(document.domain)"
" οnmοuseοver="alert(document.domain)
" οnmοuseοver="alert(document.domain)"
//其实后面不用闭合,但闭合了也没关系,网站会自动加个=的闭合构成
           

Stage #7 列表中的XSS

输入123,正常

输入123 234
-->value="123" 234=""

再输入123 234 345
-->value="123" 234="" 345=""

再输入123 234=345
-->value="123" 234="345"
           

这样就清楚了,构造payload

Stage #8 javascript中的XSS

F12后随意输入几个字符:111222,发现是超链接

构造普通的XSS发现行不通,于是构造一下内容:

Stage #9 UTF-7中的XSS

没有所需的环境…

用的取巧的payload

在F12后选取hint,在id=“hide”后面加上如下代码即可

Stage #10 有过滤的XSS(1)

老样子,输入一下语句测试

F12定位代码后发现document没了,考虑是过滤

解法一

想到双写domain试一试,结果成功了

解法二

使用base64解码绕过过滤

把alert(document.domain)进行base64编码后(不限于base64)

使用atob函数进行base64解码即可

Stage #11 有过滤的XSS(2)

此题提示为

就是过滤了script,过滤了on开头的事件,过滤了style

Stage #12 有过滤的XSS(3)

因为双引号空格等都被过滤,所以

采用两个反引号`` 进行替代双引号

但是只有IE浏览器才会将反引号识别为",

所以用IE浏览器打开输入以下代码即可

`` onmouseover=alert(document.domain);