系统文件夹经典ASP漏洞?

时间:2014-04-20 03:32:02

标签: security asp-classic

当我在我的网站上时,我错误地输入了一个符号,并且该页面返回了一个"错误(?)。"

browse.asp?A = 0000< - 那是文件夹,我向后斜杠。

这是我的问题,当发生这种情况时,这就是出现的问题"系统文件夹 - 不要删除"这是一个漏洞(?)还是这只是一个真正令人担心的错误?

1 个答案:

答案 0 :(得分:2)

这可能是directory traversal漏洞。

这是恶意用户可以将../个字符输入到应用程序用于查找文件的参数。这可能比预期更难以防御,因为过滤../字符可能并不总是足够的。攻击可以通过对这些字符进行双重编码或将/交换为\或通过传递空字节(%00)或其组合来绕过某些语言的过滤器。

为防止这种情况,您的页面应检查以下内容(按顺序)。

  • 在检查/\和空字节之前,完全解码然后规范化目录参数值。如果参数值包含any,则应该失败并显示错误(不要尝试尝试"清理"参数,因为清理例程可能是攻击者试图绕过的东西)。例如/bar/../foo.jpg应该标准化为foo.jpg,因为..个字符正在将当前目录移动到bar目录之外。基本上,您正在尝试为每个文件创建一个可由参数引用的规范化路径,以便您可以像之类的那样进行比较。
  • 应用程序应使用允许文件类型的硬编码列表,并拒绝任何不同类型的请求。
  • 文件系统函数应验证目录名称并检查它是否与应用程序期望访问其中的文件相同(这将是ASP中的GetAbsolutePathName函数)。

有关详细信息,请查看此文章:How to test for directory (path) traversal