当我在我的网站上时,我错误地输入了一个符号,并且该页面返回了一个"错误(?)。"
browse.asp?A = 0000< - 那是文件夹,我向后斜杠。
这是我的问题,当发生这种情况时,这就是出现的问题"系统文件夹 - 不要删除"这是一个漏洞(?)还是这只是一个真正令人担心的错误?
答案 0 :(得分:2)
这可能是directory traversal漏洞。
这是恶意用户可以将..
或/
个字符输入到应用程序用于查找文件的参数。这可能比预期更难以防御,因为过滤..
和/
字符可能并不总是足够的。攻击可以通过对这些字符进行双重编码或将/
交换为\
或通过传递空字节(%00
)或其组合来绕过某些语言的过滤器。
为防止这种情况,您的页面应检查以下内容(按顺序)。
/
,\
和空字节之前,完全解码然后规范化目录参数值。如果参数值包含any,则应该失败并显示错误(不要尝试尝试"清理"参数,因为清理例程可能是攻击者试图绕过的东西)。例如/bar/../foo.jpg
应该标准化为foo.jpg
,因为..
个字符正在将当前目录移动到bar
目录之外。基本上,您正在尝试为每个文件创建一个可由参数引用的规范化路径,以便您可以像之类的那样进行比较。GetAbsolutePathName
函数)。 有关详细信息,请查看此文章:How to test for directory (path) traversal。