很基础的一个靶场 同一关卡 过关方式很多 欢迎大家留言给出宝贵意见
level1:
进入主界面,查看页面源代码
经过分析 通关方式为使其在原页面弹出一个窗口
再返回原界面 经过点击发现在url窗口处的name后输入 页面也会随之改变
我们找到了输出口在URL 测试一些敏感字符 类似于
" ' < > script on href 等 发现他没有过滤这些 那就好办了 随便在url里输入
</h2><script>alert(/xss/)</script><h2>
当然 我们也可以用其他语句 类似于<a>标签之类的
level2
有两个输出点url 和界面的input
再次输入第一关的语句 通过观察显然<>被过滤了将<>变成了实体编码
</h2><script>alert(/xss/)</script><h2>
</h2><script>alert(/xss/)</script><h2>
这里普及一下常用的实体编码
空格  ;< < > > " " ' ' & &
书归正题
那么我们观察下面的input标签 我们输入的东西会在这个地方 我们随便输入 xss
查看源代码 发现 他输出在了 value那里了
那么我们在输入框里输入
"><script>alert(/xss/)</script><"
即可进入下一个
亦或是输入
" onmouseout="alert(/xss/);
level3
经过两关的经验,我发现了只要想办法绕过一些规则,实现alert(/xss/)的实现即可
input里 " 和<>被实体编码 url依旧把<>实体编码
观察源代码 发现之前value 跟的是' 那我们也可以用'来闭合
' onmouseout='alert(/xss/);
level4
input里将<>过滤
我们继续用
" onmouseout="alert(/xss/);
嘿嘿发现这玩意还挺好用,以后第一个就用他
level5
on被制表符 搞成了o_n ,才说上边那个好用 打脸了
那就换个
"><a href=" javascript:alert(/XSS/);">点这里过关</a><"
level6
href script on 都被过滤了 只需把他过滤的字符串改成大写的就行了
" ONMOUSEOUT="alert(/xss/);
level7
离谱 直接把on 和href 给抹杀了 一点痕迹都没了
那我就给他穿个外衣将他要过滤的字符 进行堆叠 类似于 oonn 这样他就会先识别一个o 杀掉
在发现 略过 发现n杀掉 再看见n就略过 这样就可以留下完整的on了
" oonnmouseout="alert()
level8
我发现在url里输入一些东西 会返回到href=""里
那就好办了 还剩的我建<a>标签了 乐得我 直接输入 JavaScript:alert(/xss/) 发现他给我script里加了个制表符 我又一看 我在URL里输出呢 我不怕
先在输出里打上 JavaScript:alert(/xss); 他会将这个改成 JavaScr_ipt:alert(/xss);
然后在URL里找到script 在其中输入制表符 %09 然后就到下一关了
level9
随便输入了点东西 看源代码 提示我输入的网站不合法 那啥是合法的呢 估计是在提示我 输入合理的网址 于是我加入了http:// 发现可以正常输入了 于是我就兴高采烈地输入JavaScript:alert();//http://
麻了麻了麻了麻了 script又被scr_ipt
得!! 我老老实实去URL里治你 在URL里输入
JavaScr%09ipt:alert();//http://
拜拜了您
level10
ε=(´ο`*)))唉 这这这 怎么没有输入口呢? 随便输入点什么东西 发现界面没有任何改变
打开源代码
好小子,玩捉迷藏呢 还hidden
在URL里输入t_link=1&t_history=2&t_sort=3 嘿嘿 发现页面有所改动了
就是你t_sort 紧接着就好办了 输出的东西会在t_sort 后的value中显示
在URL哪里输入
t_sort=" type="text" onmouseout="alert(/xss/)