目录穿越与目录遍历的区别
目录穿越(Directory Traversal)和目录遍历(Directory Listing)是两种涉及文件系统的不同概念和攻击方式。
1. 目录穿越(Directory Traversal):
目录穿越是一种攻击技术,通常利用应用程序没有正确验证或限制用户输入,从而允许恶意用户访问应用程序之外的文件或目录。攻击者通过在用户输入中使用特殊字符(例如 `../` 或 `..%2f`)来构造恶意的路径,使应用程序在处理用户输入时跳出当前目录,进入其他目录,从而绕过访问限制。目录穿越攻击可能导致敏感文件的泄露、未授权访问等安全问题。
例如,如果一个应用程序使用用户提供的文件名来加载文件,但没有正确过滤或限制用户输入,那么攻击者可能构造 `../../../../../etc/passwd` 的路径,使应用程序尝试加载系统中的 `/etc/passwd` 文件,从而泄露系统的敏感信息。
2. 目录遍历(Directory Listing):目录遍历是指访问应用程序公开的目录,获取目录中的文件列表。这种行为本身不一定是攻击,但在某些情况下可能泄露敏感信息。目录遍历通常发生在应用程序公开了目录浏览功能(Directory Listing Feature),或者在没有正确配置服务器的情况下,默认允许对目录的访问。
例如,如果一个网站的某个目录没有正确配置索引选项,或者公开了目录浏览功能,那么用户可以直接访问该目录的URL,并获取目录中所有文件的列表。这样可能导致敏感文件的暴露。
总结:
- 目录穿越是一种攻击技术,目的是绕过应用程序的访问限制,访问系统中其他目录的文件。
- 目录遍历是指获取应用程序公开的目录中的文件列表,可能导致敏感信息的泄露。不是攻击行为本身,而是由于配置不当导致的安全问题。
一般来说在目录穿越时如果是Linux系统重复5个../就可以回到系统的根目录