level 1
直接测试,我们看到参数是name,那就吧payload带进去。发现直接就注入了,没有任何的过滤。
其实我们可以先构造一串敏感字符,用作测试,看看程序是如何过滤的。比如:<scR<scrRiptipt>ipt>OonN&;"<> 。用做最先的测试。是否有关键字、大小写、符号等的过滤。
http://localhost:85/level1.php?name=<script>alert(1) </script>
level 2
输入框,我们试一下,发现不行。
我们查看一下源代码,看看有什么发现。这里虽然我们的输入没有任何的过滤,但是input标签中value=" ">,我们就可以想到闭合这个标签。
http://localhost:85/level2.php?keyword="><script>alert(1) </script>
level 3
先输入测试语句,没有注入成。
查看源代码。发现代码中我们的payload被过滤修改了。<被替换成html字符编码
换一个payload,触发事件函数:onmouseover 。这个要鼠标触发的。
http://localhost:85/level3.php?keyword=’ οnmοuseοver=‘alert(1)