[第二章 web进阶]XSS闯关
1
- 点击开始闯关后转跳到第一关,可以看到网址后面存在username,再查看网页源代码,发现并未进行XSS过滤,可以直接进行XSS注入.
在username后输入<script>alert(1)</script>进行常规XSS注入
显示”恭喜过关”
- 进入下一关后,发现与第一关无异,再次尝试常规注入
发现没有回显,怀疑被过滤,查看网页源代码
由该行代码可以看出username被escape加密输入1’;将其注释
于是整体在username后输入1’;alert(1);’1
显示恭喜过关,进入下一关
- 进入第三关
首先使用<script>alert(1)</script>进行试探,发现没有回显
查看网页源代码,未发现明显过滤
试一下第二关的方法,输入1’;alert(1);’1 还是空白回显
查看网页源代码,可以发现‘(单引号)被转义,多出一个”\”
那么就相当于”闭合了结构,就可以构造为: '';alert(1);'1
进入下一关
- 进入第四关
有点懵每隔十秒就会进入一个新的页面进行无限嵌套
查看网页源代码
不难看出该网页每隔十秒就会自动跳转URL,代码中接受jumpURL作为转跳URL
构造一个伪链接:
JavaScript:alert(1)
//*JavaScript:浏览器会把JavaScript后面的内容当作命令执行
所以构造命令:?jumpurl=javascript:alert(1)
可以看到过关成功
- 进入第五关,出现了一个输入框
在输入框里输入任何内容回显均为错误
查看网页源代码,
对代码进行分析可得有两个变量被过滤,需要对其进行绕过
getQueryVariable('autosubmit') !== false){ //如果出错就会执行getQueryVariabl函数
autoForm.action = (getQueryVariable('action') == false) ? location.href : getQueryVariable('action');
//变量action执行getQueryVariable函数
Payload如下:
autosubmit=1&action=JavaScript:alert(1);//
- 随后获得flag