介绍
欢迎来到我们的互动实验!在这里,我们将深入探讨 Web 安全的世界,重点关注跨站脚本攻击(XSS)——这是 Web 应用程序中常见但至关重要的漏洞。如果一个网站没有正确防范 XSS,它可能会成为攻击者的游乐场。
不过别担心!我们将帮助你理解并解决这个问题。我们将从分解什么是 XSS、它的重要性以及如何被利用开始。然后,我们将指导你使用一个名为 'hackbar' 的工具,它将帮助我们识别潜在的 XSS 漏洞。
此外,我们还将探索各种“绕过技术”。这些是攻击者用来规避安全措施的巧妙方法,通过理解它们,我们可以更好地保护我们的网站。
记住,学习的最佳方式是通过实践——因此我们将在整个过程中进行动手实验。在本实验结束时,你将深入了解 XSS 漏洞以及如何预防它们。让我们开始吧!
安装和使用 Hackbar
在本模块中,我们将熟悉一个名为 'hackbar' 的便捷工具,它将成为我们检测 XSS(跨站脚本攻击)漏洞的主要助手。
首先,让我们安装 hackbar 浏览器扩展:
- 导航到目录
/home/labex/project。 - 找到文件
hackbar-2.3.1-fx.xpi,双击它,然后在弹出的窗口中点击“添加”以安装扩展。如下图所示:
安装完成后,你可以通过启动浏览器的开发者工具来访问 hackbar。通常可以通过按下 F12 键,或者导航到设置 > 开发者 > 调试器来完成。
让我们快速浏览一下 hackbar 的一些关键功能:
- Load URL(加载 URL):此功能将当前页面的 URL 拉入 hackbar。
- Split URL(拆分 URL):此功能将 URL 参数分解,使其更易于阅读和理解。
- Execute(执行):此功能将修改后的 URL 发送回服务器。
- Post data(POST 数据):此功能允许你向服务器发送 POST 数据。
此外,hackbar 还内置了针对各种漏洞的 payload,包括 SQL 注入、XSS 和 XXE。
XSS 漏洞实验 1
在本部分中,我们将深入探讨一个基本的 XSS(跨站脚本攻击)漏洞,并学习如何使用 hackbar 来利用它。
首先,执行以下命令来准备我们的实验环境:
docker run -d -p 82:80 --name pentesterlab-WebforPentest-1 -it jewel591/vulnbox:pentesterlab-WebforPentest-1 /bin/sh -c 'service apache2 start && tail -f /var/log/apache2/error.log'
接下来,启动你的浏览器并导航到以下 URL:
http://127.0.0.1:82/xss/example1.php?name=hacker
以下是利用 XSS 漏洞的步骤:
- 按下 F12 启动 hackbar,然后点击“Load URL”以拉入当前页面的 URL。
- 将
name参数的值修改为123,然后点击“Execute”。你应该会看到页面更新为这个新值,如下图所示。
- 使用 hackbar 中内置的 XSS payload(
XSS > XSS Alert),然后点击“Execute”。这将触发一个 XSS 弹窗,如下图所示。
XSS 漏洞实验 2
在本部分中,我们将探索一种绕过 XSS(跨站脚本攻击)过滤器的基本技术。
首先,在浏览器中导航到以下 URL:
http://127.0.0.1:82/xss/example2.php?name=hacker
以下是绕过 XSS 过滤器的步骤:
- 尝试使用 hackbar 注入一个简单的 XSS payload,例如
<script>alert(1)</script>。你会发现这并没有达到预期的效果,如下图所示。
- 检查页面的源代码。你会注意到
<script>和</script>标签被过滤掉了,如下图所示。
- 为了绕过这个过滤器,尝试使用不同大小写的
script标签,例如<ScripT>alert(1)</ScripT>。这可能会让你成功绕过过滤器并注入 XSS payload,如下图所示。
XSS 漏洞实验 3
在本阶段中,我们将学习如何使用各种 HTML 标签和属性来执行 XSS(跨站脚本攻击)。
首先,在浏览器中导航到以下 URL:
http://127.0.0.1:82/xss/example4.php?name=hacker
按照以下步骤绕过 XSS 过滤器并执行攻击:
- 尝试使用 hackbar 注入一个简单的 XSS payload。然而,你会发现服务器识别并阻止了
script关键字,如下图所示。
- 为了绕过这个过滤器,我们将使用
<a>HTML 标签结合onclick属性:
<a onclick="alert('xss')">xss</a>
这个 payload 会在网页上生成一个可点击的链接。当点击时,它会触发 alert('xss') JavaScript 函数。
- 点击页面上的 "xss" 链接。你应该会看到 XSS 弹窗被触发,如下图所示。

有许多 HTML 标签和属性可以结合使用来发起 XSS 攻击。有关更复杂的 XSS payload,请参考以下仓库:
https://github.com/iSecurity-Club/Pentest-Methodologies/blob/master/web-exploit-exp/xss/payloads.txt
总结
在本实验中,我们学习了发现和利用 XSS 漏洞的基本技术。我们探索了如何使用 hackbar 工具测试 XSS 漏洞,并运用了多种绕过技术,例如大小写转换和使用不同的 HTML 标签和属性。通过动手实验,我们获得了识别和利用 Web 应用程序中 XSS 漏洞的实践经验。本实验为进一步探索更高级的 XSS 技术和 Web 应用程序安全测试奠定了坚实的基础。



