📜  路径颤动 (1)

📅  最后修改于: 2023-12-03 14:57:49.467000             🧑  作者: Mango

路径颤动介绍

概述

路径颤动是指在计算机程序中,路径名称包含特殊字符或不合法字符,导致程序报错或执行异常,甚至出现安全漏洞的现象。

例如,在web应用程序中,一个包含路径颤动漏洞的URL请求可以可能被黑客利用,达到远程执行任意代码的攻击目的。

常见类型
目录穿越

目录穿越是指攻击者通过输入特定的目录结构,跳转到其他应用程序或服务器上的目录,绕过访问控制并获取敏感数据或执行恶意代码。常见的攻击技术包括:../、..%c0%af../、..%c1%9c../等。

空字节截断

空字节截断是指在路径名称中插入空字节字符(\0),早期的C语言中,这个字符表示字符串的结束符,导致程序在解析路径时,将截断其余部分的字符串,造成路径颤动漏洞。

UNC路径

UNC路径是指把文件从共享文件夹中调用,可以通过输入UNC路径名称尝试绕过应用程序的访问控制,访问本地文件、远程文件,甚至获取管理员权限。常见的UNC路径包括:\localhost\c$\、\127.0.0.1\c$\等。

防范措施
  • 校验输入的路径名称,过滤掉特殊字符和不合法字符,如“\0”、“/”、“\”等;
  • 使用绝对路径代替相对路径,禁止使用“..”等字符;
  • 在访问本地文件时,禁止使用UNC路径,使用相对路径、绝对路径或限制访问的共享文件夹。
总结

路径颤动漏洞是一种常见的安全漏洞,很容易被攻击者利用来窃取敏感信息或攻击服务器。程序员在开发过程中,必须对输入的路径名称进行严格校验和过滤,避免路径颤动漏洞的出现。