【问题标题】:What Malicious Things has Javascript Done To You?Javascript 对你做了什么恶意的事情?
【发布时间】:2010-09-27 17:15:22
【问题描述】:

我问了一个问题: What's with those Do-Not-Use Javascript People 和许多人说 Javascript 允许通过客户端攻击进行安全漏洞利用。

所以我需要跟进并了解这些攻击的性质有多严重:

我想听听一些关于通过 Javascript 直接或间接导致或允许对您的计算机或网络造成的实际攻击或损害的详细描述。

具体来说,您的计算机或网络是否受到任何物理损坏?你有没有丢失任何数据?你的软件有损坏吗?如果发生任何损坏,需要多长时间才能修复,费用是多少?

或者攻击在造成任何伤害之前就停止了,它是如何停止的?这需要多长时间,费用是多少?

我不认为弹出窗口是一种攻击。它们只是一个烦人的东西,可以在不禁用 Javascript 的情况下轻松阻止。

请仅详细说明您亲自参与过的攻击。我相信你作为程序员的智慧,但我不太相信第三方的故事,原因可能是别的。

【问题讨论】:

  • 杰夫没有在堆栈溢出播客中提到一个吗?

标签: javascript security


【解决方案1】:

嗯...Can 0wn you。我的意思是字面上可以拥有整台计算机,安装木马。

我已经看到并成功完成了如此多的 XSS 攻击,这些攻击导致窃取管理会话并控制整个应用程序。我已经看到并完成了客户端攻击,例如上面的链接,这导致安装另一个应用程序(RAT)并控制整个盒子。

此时作为攻击者你可以开始攻击内部网络,比如你可以拥有路由器然后控制整个公司的流量,你可以攻击域控制器,或者你可以使用散列工具 或类似的工具来窃取本地凭据并使用这些凭据攻击其他系统。此后,一切都与其他计算机的安全有关(如果浏览器以最低权限而不是管理员帐户运行,则为本地计算机)

【讨论】:

  • 好吧。你是攻击者而不是被攻击者。您能否详细说明其中一次攻击及其造成的损害。请给我具体的例子。
  • 第一个示例是一个论坛应用程序,其中包含永久 XSS。发送私人消息包括将 cookie 发送到我的服务器的 javascript。我重新登录到应用程序,然后进入管理部分。
  • 看看这个视频:youtube.com/watch?v=Vg7lhWuPjMY 这是一个真正的 XSS 攻击的演示。
  • @lkessler,我明白你的意思,但我认为你应该小心,因为你怀疑 Javascript 漏洞是真实的。他们非常喜欢。但是,这是否意味着我们不应该在 Web 应用程序中使用 Javascript?”我不这么认为。
  • 这里您说的是由于论坛软件中的错误编码允许 XSS 注入而利用网站中的漏洞。是的,这可能发生。现在我想要一个具体的例子,而不是演示,来自某个发生过的人。
【解决方案2】:

好吧,任何恶意 JavaScript 最终都会通过浏览器功能发挥作用,因此 this proof-of-concept demo 可能符合您的要求。它利用页面可以动态创建指向给定 URL 的链接这一事实,然后检查它是什么颜色,以确定您的浏览器是否认为该站点是您浏览历史的一部分。该链接所做的只是尝试猜测您的性别,但同样的想法也可用于攻击 - 例如,它可以测试主要银行的 URL,并向您展示针对您使用的任何银行定制的网络钓鱼攻击。

当然,这可能(应该)在未来的浏览器版本中得到修复,但大多数漏洞利用都是如此。

【讨论】:

  • 哇哈哈“概念证明”。 “你是女性的可能性是 99%。你是男性的可能性是 1%”。要么我是女性,我不知道,要么证明失败了。
  • 这实在是太夸张了。因此,假设从我的浏览历史中获取我处理的银行。他们需要将其与我的电子邮件地址相匹配。通过电子邮件向我发送“网络钓鱼”,希望我提供我的个人信息。 Javascript 不是攻击的来源。另外,我询问了影响您的攻击。
  • 显然我只访问了 google.com,所以我不确定。实际测试了哪些网站?前 10 名列表中的所有页面?我什至不认识他们中的大多数。
  • 网络钓鱼攻击可以通过电子邮件以外的机制进行。如上所述,用于确定您是否访问过主要银行 URL 的页面可能会为您提供该银行登录页面的副本,并使用不同的
    来收集您的凭据。
  • lkessler:我知道您的要求,如果您访问了演示站点,那么您和我一样,“已经受到”使用 JS 查询您的浏览历史的站点的影响。不知道电子邮件与它有什么关系,但该网站仍然访问您的浏览历史记录。
【解决方案3】:

不要让您的最终用户插入允许

例如如果你有博客,不要让他们用任何 HTML 来评论。

为什么?

1.) script 标签很明显,他们可以为所欲为

2.) 样式标签和样式属性不是很明显,但是在IE中,它们可以使用行为或表达式属性来调用脚本内容

3.) 任何 onclick、onmouseover 等属性显然都可以包含脚本内容,因此也要避免使用它。

4.) 观察 href 和 src 属性,如果它们包含“javascript:”协议,那么你也暴露了脚本。

更新:将

【讨论】:

  • 这不是发生在您身上的特定攻击的示例。你只是在解释可能发生的事情。我想知道已经发生的事件。
  • 是的,可以理解,但这是开发人员使自己暴露于任意数量的攻击时最常见的错误之一。
【解决方案4】:

在我的网站nizzote.com/welcomeSO

我使用

当页面再次加载时,它会让你卡在一个警告框中,你必须关闭浏览器才能退出。

我很快就看到了,并对所有输入进行了 htmlencoded 以解决问题。 (c# httputility.htmlencode(string) ) 没有真正的损坏或成本,修复很快。

【讨论】:

  • 无意冒犯,但“我没有清理我的东西”并不是真正的 JS 漏洞。
【解决方案5】:

对客户端站点上易受攻击的输入脚本的注入攻击导致通过自动 MS SQL 脚本将木马加载脚本主体附加到其数据库中的每个文本字段。我们最终使用脚本否定自身来清理它,但在漏洞被堵塞之前,相当多的人通过中国的服务器感染了某种病毒。

这适用于这一点,因为注入孔是通过 javascript 引用(AJAX 调用)创建的,并且交付物也是通过随后注入的 javascript 引起的。

【讨论】:

    【解决方案6】:

    我个人没有遇到任何问题,只是偶尔出现一些浏览器崩溃(这主要是因为代码写得不好)。不要过多阅读,我绝对理解 javascript 是一个相当广泛的攻击媒介;我只是说对于大概 80-90% 的互联网用户而不是网络应用程序开发人员来说是正确的。

    【讨论】:

      【解决方案7】:

      让我无法享受静态链接的强类型语言。并与某个名叫 Crockford 的人建立了一种不由自主的依赖关系。

      【讨论】:

        猜你喜欢
        • 2010-10-31
        • 2021-08-15
        • 1970-01-01
        • 2013-08-18
        • 1970-01-01
        • 2010-10-03
        • 2013-05-03
        • 2015-09-16
        相关资源
        最近更新 更多