关注这个靶场的其他相关笔记:XSS - LABS —— 靶场笔记合集-CSDN博客
0x01:过关流程
进入靶场,空空如也,右击页面,查看网页源码,找找可疑点:
可以看到,靶场默认传参,都传递到了 <embed>
标签内,并且分别作为 key 和 value 的格式。那这个就很简单了,直接给他传个监听事件即可(这个靶场推荐在 Google 浏览器中完成,FireFox 中容易出现下面这个情况,即 <embed>
标签不显示)。
XSS Payload ,以及攻击流程分析如下:
?arg01=%20onmouseover&arg02=alert(1)
0x02:源码分析
下面是 XSS LABS Level 17 的源码,以及我对其的部分笔记:
<!DOCTYPE html><!--STATUS OK-->
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<script>
// 修改 alert() 的默认行为,不过奇了怪了,在这关中没用
window.alert = function() {
confirm("完成的不错!");
}
</script>
<title>欢迎来到level17</title>
</head>
<body>
<h1 align=center>欢迎来到level17</h1>
<?php
ini_set("display_errors", 0);
echo "<embed src=xsf01.swf?" . htmlspecialchars($_GET["arg01"]) . "=" . htmlspecialchars($_GET["arg02"]) . " width=100% heigth=100%>";
// 直接将传入的两个参数经过过滤后放到了 <embed> 属性的位置,这就不提了,明显的 XSS 漏洞
?>
<h2 align=center>成功后,<a href=level18.php?arg01=a&arg02=b>点我进入下一关</a></h2>
</body>
</html>