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