话不多说,让我们直接进入第一关。
发现页面没有输入框,但是根据页面上的欢迎用户test可以找到链接中的name=test
来试着改变这个值看看有没有什么变化
发现页面变了,那还攻击干什么,愣着啊。
;
点确定进入第二关。
发现第二关有搜索框了,在搜索框输入下面这行代码,然后搜索。
我愿称之为XSS万能语句(狗头
。
'"()Oonnjavascript;
反手给它来个查看源码,一起康康是哪里的问题。
我们可以看到,我们的输入出现在第17行的value中。
ok,我们来加点东西来绕过它在试一次。
"> ;
来,兄弟萌,把舒服了给我打在评论区!
这次再来看看源码(学习么,不就是要知其然,然后再知其所以然的过程
还是第17行
">
我们可以看到,我们添加的">使得源代码的中的value语句闭合
从而成功执行了我们的
来到第三关
发现有个搜索框,跟第二关方法一样,上我们的万能语句
查看源码
还是在第17行
;
第二关
和第二关的对比后
我们发现这次源代码里它把我们的"<“和”>"全都给转义了,变成了’<和’"。
所以呢,我们就换个绕过的方法。
' onmouseover='alert(/dreeee/)
首先,使用’ 闭合了value。然后使用了一个新的事件来触发弹窗。
继续第4关
有搜索框,在里面输入万能语句。
查看源码
发现还是符号被屏蔽了,继续用第三题的方法。(但是要注意把 ’ 改成 "
不难看出,在这一关中,把大写字母和on给过滤了
我们使用构造伪链接的方法来攻击
">别点我没结果
对比分析得出,这关过滤了on,但是大小写转换并没有转换。
尝试使用第五题的答案去提交
然而,并没有出现我们想要的结果。
查看源代码进行分析。
从17行我们发现,这关也把href给转义了。再结合之前的分析,这关并没有屏蔽大小写,所以我们把herf改成大写来绕过。
">别点我没结果
777777777777777777777777777777777777777
用万能语句进行检测
查看源码
欸,我的大写字母呢?我script呢?可能是被过滤和转义了
但是单引号,双引号和尖括号都还在,所以我们可以先把input标签先给闭合了,然后再使用双写绕过。
">alert(/xss/)
第八关一进来,就看一个友情链接,我们来看看它是来捣乱的还是来交朋友的
那没事了(nmsl
用老方法去检测吧
查看源代码
我们发现,它不但把我们输入的内容变成了链接外,还转义了我们的大小写、我们的script,还有我们的双引号。
这关我们使用的方法是对标签值进行转码。
javascr
ipt:alert(/dreeee/)
第九关界面和第八关差不多,试一下第八关的答案
点击链接
浏览器的输入框说我们的链接不合法?有没有
那我们输入一个合法的康康
点击看看是什么样的
可以进入该网站。由此可以判断,在源代码中可能存在着一个标识符去检测我们的输入的链接是否包含http
那我就在第八关答案的基础上改进一点试一下
javascr
ipt:alert('http://')
看到这里不禁觉得和第一关有一咩咩相似
在连接后面输入我们的万能语句试试
查看源码
发现有三个input标签,我们来试着给这三个标签赋值看看会有什么结果
查看源代码
咦~ t_sort的值竟然赋值成功了
所以我们就决定从t_sort入手,首先闭合value的值,并创造一个事件来触发它
t_sort="onclick = "alert(/dreeee/)
分析源码发现语句并无问题,然而还是无法触发事件。
哦,你分析错了,你的那个type被hidden了,hidden了你还触发个。
我们再来改一改,自己创造一个type。
t_sort=莫挨老子!爬!"type="button" onclick="alert(/dreeee/)
出现了按钮。
点他干啥?愣着啊!
NICE!!!
查看源代码
由于我们自己新建了一个type,所以源代码中的type="hidden"就失效了,从而成功触发了我们的事件。
首先,十分感谢您能看到这里!感谢您的支持!
其次呢,上面的通关方法还有很多种,我的方法只是其中的一种,仅供参考,如果有更好的,咱们讨论区友好交流交流。
最后,这是我第一篇博客,有很多不足和错误,欢迎在评论区指出。如果你有好的建议或意见,也可以在评论区留言,我会改进的!
peng!peng!peng!