笔者burpsuite的在线安全学院的目录遍历学习笔记。限于本人水平,笔记质量不是很高,假如有看到的大佬轻喷,很多地方是Google翻译的。
文章目录
- 什么是目录遍历?
- 通过目录遍历读取任意文件
- 利用文件路径遍历漏洞的常见障碍
-
-
- Lab: File path traversal, traversal sequences blocked with absolute path bypass
- Lab: File path traversal, traversal sequences stripped non-recursively
- Lab: File path traversal, traversal sequences stripped with superfluous URL-decode
- Lab: File path traversal, validation of start of path
- Lab: File path traversal, validation of file extension with null byte bypass
-
- 如何防范目录遍历攻击
什么是目录遍历?
目录遍历(也称为文件路径遍历)是一个Web安全漏洞,攻击者可以利用该漏洞读取运行应用程序的服务器上的任意文件。这可能包括应用程序代码和数据,后端系统的凭据以及敏感的操作系统文件。在某些情况下,攻击者可能能够在服务器上写入任意文件,从而允许他们修改应用程序数据或行为,并最终完全控制服务器。
通过目录遍历读取任意文件
考虑一个显示要出售商品图像的购物应用程序。图像通过一些HTML加载,如下所示:<img src="/loadImage?filename=218.png">
该loadImage网址将filename参数,返回指定的文件的内容。映像文件本身存储在该位置的磁盘上/var/www/images/。为了返回图像,应用程序将请求的文件名附加到此基本目录,并使用文件系统API读取文件的内容。在上述情况下,应用程序将从以下文件路径读取:/var/www/images/218.png
该应用程序没有针对目录遍历攻击采取任何防御措施,因此攻击者可以请求以下URL从服务器的文件系统中检索任意文件:https://insecure-website.com/loadImage?filename=../../../etc/passwd
这将导致应用程序从以下文件路径读取:
/var/www/images/../../../etc/passwd
该序列…/在文件路径中有效,并且意味着在目录结构中上一级。三个连续的…/序列从/var/www/images/
文件系统根目录开始,因此实际读取的文件是:/etc/passwd
在基于Unix的操作系统上,这是一个标准文件,其中包含在服务器上注册的用户的详细信息。
在Windows上,…/和和…\都是有效的目录遍历序列,而检