目录穿越/遍历漏洞及对其防御方法的绕过

目录穿越是一种严重的Web安全漏洞,允许攻击者读取服务器上的任意文件甚至执行系统命令。防御措施包括使用绝对路径、过滤特殊字符和URL编码,但这些有时会被双写技巧或编码绕过。文章还举例说明了如何通过…/…/…/结构来访问敏感文件,并提到利用%00截断文件后缀的攻击方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录穿越/遍历漏洞及对其防御方法的绕过

介绍:

  目录穿越(目录遍历)是一个Web安全漏洞,攻击者可以利用该漏洞读取运行应用程序的服务器上的任意文件。 这可能包括应用程序代码和数据,后端系统的登录信息以及敏感的操作系统文件。目录穿越不仅可以访问服务器中的任何目录,还可以访问服务器中任何文件的内容。例如,攻击者通过浏览器访问…/…/…/…/…/…/…/…/…/…/…/…/…/…/etc/passwd(此处较多…/),就可以读取Linux服务器根目录下的etc目录下的passwd文件的内容。
  目录穿越比目录浏览、目录遍历更具破坏性,目录穿越不仅可以读取服务器中任何目录及任何文件的内容,还可以执行系统命令。又例如攻击者通过浏览器访问s/…%5c…/Windows/system32/cmd.exe?/C+dir+C:,使用IIS中间件的s目录来变换目录并达到执行命令的目的。这个Web请求会返回C:所有文件列表,这是通过调用cmd.exe程序并执行dir C:命令来实现的。%5c是Web服务器的转换符,用来代表一些常见字符,这里表示的是反斜杠。

原理:

1、./是当前目录
2、…/是父级目录(回到当前文件夹下的,上一个文件夹)
3、/是根目录(回到最顶端的那个文件夹下)

看道例题(buuctf的exec1):

在这里插入图片描述在这里插入图片描述
联合执行ls /后发现flag文件,直接cat /flag:

在这里插入图片描述
发现不太行,所以要老老实实加上路径,可是不知道绝对路径,想到可以用目录穿越:
在这里插入图片描述
构造…/…/…/…/…/…/flag,拿到flag

反目录穿越的防御措施:

1.绝对路径:

web网站有时候会采取目录遍历的防御措施,如过滤 …/ 上一级等关键字,然后简单的过滤通常会被绕过。有时候可以直接采用绝对路径,无须…/返回上一级目录遍历。

2.双写…/绕过:

有时候,防御措施是直接将 …/ 替换为空,可以直接采用双写/复写直接绕过(filename=…//…//…///etc/passwd)。

3.URL编码绕过:

也可以采用URL编码来绕过服务器对 . 或者 / 的检测(大部分情况需要双重编码):
. => %2c
/ => %2f
% => %25 (双重URL编码)

4.截断文件后缀:

某些web对filename的文件类型作了限制,只有当后缀为图片时才解析,这时候就可以利用 %00 来截断。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值