什么是目标遍历?

前言:

1. 什么是目录遍历?

目录遍历(为文件路径遍历)是一种网络安全漏洞,允许攻击者读取运行应用程序的服务器上的任意文件。这可能包括应用程序代码和数据、后端系统的凭据以及敏感的操作系统文件。在某些情况下,攻击者可能能够写入服务器上的任意文件,允许他们修改应用程序数据或行为,并最终完全控制服务器。


一.通过目录遍历读取任意文件
1.实验要求:检索/etc/passwd文件的内容。
2.进入网站后,打开 Burp Suite 代理历史记录,找到获取产品图像的请求。发送到“重发器”后,修改filename参数,为其赋值:…/…/…/etc/passwd。发送请求,观察返回结果。
在这里插入图片描述
该序列…/在文件路径中有效,意味着返回目录结构中上一级。这里的三个连续的…/序列从文件系统的根目录开始。然后在按照etc/passwd访问文件。
二.利用文件路径遍历漏洞的常见障碍

  • 许多将用户输入放置到文件路径中的应用程序实现了某种针对路径遍历攻击的防御,并且这些通常可以被规避。
    如果应用程序从用户提供的文件名中剥离或阻止目录遍历序列,则可以使用多种技术绕过防御。

1.可以使用来自文件系统根目录的绝对路径,例如filename=/etc/passwd直接引用文件,而无需使用任何遍历序列。
在这里插入图片描述
2.也可以使用嵌套遍历序列,例如…//or …/,当内部序列被剥离时,它将恢复为简单的遍历序列。
在这里插入图片描述
3.在某些情况下,例如在 URL 路径或请求filename参数中multipart/form-data,Web 服务器可能会在将您的输入传递给应用程序之前剥离任何目录遍历序列。可以通过 URL 编码,甚至双重 URL 编码,绕过这种清理,这些…/字符分别产生%2e%2e%2f或%252e%252e%252f。各种非标准编码,例如…%c0%afor …%ef%bc%8f,也可以解决问题。
在这里插入图片描述
4.如果应用程序要求用户提供的文件名必须以预期的基本文件夹开头例:/var/www/images,可以包括所需的基本文件夹。
例:filename=/var/www/images/../../../etc/passwd
在这里插入图片描述
5.如果应用程序要求用户提供的文件名必须以预期的文件扩展名结尾
例.png,可以使用空字节有效地终止所需扩展名之前的文件路径。
例:filename=../../../etc/passwd%00.png
在这里插入图片描述
如何防止目录遍历攻击
防止文件路径遍历漏洞的最有效方法是完全避免将用户提供的输入传递给文件系统 API。可以重写许多执行此操作的应用程序功能,以更安全的方式提供相同的行为。

如果认为将用户提供的输入传递给文件系统 API 是不可避免的,则应结合使用两层防御来防止攻击:

  • 应用程序应在处理用户输入之前对其进行验证。理想情况下,验证应与允许值的白名单进行比较。如果所需功能无法做到这一点,则验证应验证输入是否仅包含允许的内容,例如纯字母数字字符。
  • 验证提供的输入后,应用程序应将输入附加到基本目录并使用平台文件系统 API 来规范化路径。它应该验证规范化路径是否以预期的基本目录开头。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值