【问题标题】:ASP.NET - Hacking the yellow screen of deathASP.NET - 破解黄屏死机
【发布时间】:2011-07-23 12:50:11
【问题描述】:

在我读过的一些书中,据说隐藏黄屏死机是件好事(显然),但这不仅是因为它对用户来说很不正式,而且还因为黑客可以使用这些信息来入侵您的网站。

我的问题是这样的。黑客如何使用这些信息? .NET调用栈基本操作的调用栈如何帮助黑客?

我附上了我在很久以前创建的一个网站上遇到的黄色死屏,它激发了我的兴趣。 (错误是尝试将查询字符串参数转换为 int 时失败。是的,我知道它的错误代码,我多年前写的;)

【问题讨论】:

  • 在 web.config 中启用自定义错误
  • 我认为只有你有if(passwordTextBox.Text == "password123")这样的代码,这个屏幕才能帮助黑客。
  • 如果您提供了数据库连接字符串,他们可以找到您的后端信息。

标签: asp.net security yellow-screen-of-death


【解决方案1】:

有几种不同的方式可能会危害您的应用程序...但其中大多数只会使攻击更容易...漏洞可能已经存在。例如,您可以轻松地显示硬编码密码或盐,或者显示一行代码接受用户输入而无需正确消毒。

【讨论】:

    【解决方案2】:

    如果您正在编写安全代码,则 YSOD 不应为黑客提供破解您的应用程序的能力。但是,如果您的代码不安全,那么 YSOD 可以为攻击者提供必要的信息以允许他们进行攻击。

    比如说,您已经编写了自己的论坛软件。当用户写帖子以防止 XSS 攻击等时,您已经进行了大量验证,但是您的验证是错误的。如果黑客在发帖时可以调出 YSOD,则显示的堆栈跟踪可能会向他们显示您的验证中的漏洞,并利用它们进行 XSS 攻击或获取成员详细信息或密码等。

    YSOD 本身并不构成威胁,但对于黑客来说,它可能是一种非常有用的方法来发现应用程序的安全漏洞。

    【讨论】:

      【解决方案3】:

      正如其他人所提到的,YSOD 本身不一定总是对黑客有帮助,但假设在您的第 13 行:在您上面的代码中,您有硬编码的连接字符串或内联 sql 查询。

      我现在从您的 YSOD 得知,您查询字符串中的“id”实际上是 artId,而不是任何可能对黑客有用的随机 id 编号。

      此外,如果黑客能够获得不止一个不同的 YSOD,它可能会泄露更多的整体信息,足以破坏您的应用。

      有时,MS 报告了一个 security vulnerability with ASP.NET,其中提供的解决方法是启用 CustomErrors 并向用户隐藏错误代码和任何特定错误相关的详细信息。

      【讨论】:

        【解决方案4】:

        还没有提到的一件事是,攻击者现在有充分的理由相信您正在使用 MySql 数据库(否​​则他们不可能猜到 ASP.NET 应用程序),帮助他们缩小潜在攻击的范围。让他们的工作变得比必须的更轻松是没有意义的。

        【讨论】:

          猜你喜欢
          • 2011-01-11
          • 2010-09-06
          • 1970-01-01
          • 2011-05-14
          • 2010-10-27
          • 2011-06-24
          • 2011-01-21
          • 2012-10-27
          • 1970-01-01
          相关资源
          最近更新 更多