* 原始文章地址可能暂时无法访问,仅展示文章的摘要信息
「xss-labs 通关教程」的摘要信息
xss-labs 是一套基于 PHP 的 XSS 靶场,以闯关的形式让我们体验各种 XSS 漏洞利用方式。虽然已经是很多年前的了,但其中基本的 XSS 漏洞依然很有意义。 一共有 20 关,每一关的目标都是实现弹窗(alert(1)),如果成功就会自动进入下一关。 环境搭建 克隆这个代码仓库的代码,其中是 xss-labs 的 PHP 源文件。只要放在 PHP 环境下即可,推荐使用 XAMPP 或者 Docker。 部署完成后,访问 index.php,就可以看到入口了: Warm Up 前两关是对于 XSS 基本原理的应用,没有任何的防御。 Level 1:文本解析为 HTML URL 为 level1.php?name=test 时,传入的参数是 test,显示的是「欢迎用户 test」。显然,这个页面会将我们传入的名字显示出来。 传入参数 <h1>test</h1> 作为 name,发现确实显示为了一级标题。看来传入的 name 直接被作为 HTML 显示了。于是尝试传入 <script>alert(1);</script> 作为 name,成功弹窗。 ?name=<script>alert(1);</script> Level 2:input 标签 value 注入 这关多了一个文本框。如果依然尝试传入 <script>alert(1);</script>,会发现在 h2 元素中符号被转义了(查看网页源代码能看到),比如 < 被转义成了 < 等,所以不会被解析成 HTML。 然而,可以看到后面的文本框 input 元素,其 value 值并没有被转义。 <h2 align=center>没有找到和<script>alert(1)</script>相关的结果.</h2><center> <input name=keyword val...