Appearance
如何检测与利用文件路径穿越(Directory Traversal)漏洞
解决 Web 应用在处理文件读取请求时缺乏输入验证的问题,通过构造 ../ 序列跳出预设目录,读取服务器任意敏感文件或将其升级为远程代码执行(RCE)。
为什么需要这个技能
在许多 Web 应用中,开发者允许用户通过参数(如 ?file=report.pdf)来加载文件。如果程序直接将用户输入拼接进文件系统 API 而未进行严格过滤,攻击者就可以利用 ../(返回上级目录)来访问系统根目录下的敏感文件。
这种漏洞可能导致严重的机密泄露(如 /etc/passwd 或数据库配置文件),在特定条件下,还可以通过日志投毒或 PHP 伪协议将其转化为最高级别的远程代码执行漏洞。
适用场景
- 安全审计与渗透测试:在获得授权的情况下,对 Web 应用的接口进行鲁棒性测试。
- 代码安全评审:识别代码中直接拼接路径且未经过
basename()或路径规范化处理的危险点。 - 防御验证:验证 WAF 或输入过滤机制是否能有效拦截双重编码、Unicode 编码等绕过技巧。
核心工作流
1. 识别潜在注入点
寻找处理文件操作的参数,常见关键词包括:?file=, ?path=, ?page=, ?template=, ?download= 等。
2. 基础路径探测
尝试使用标准穿越序列读取已知系统文件:
- Linux:
../../../etc/passwd - Windows:
..\..\..\windows\win.ini
3. 绕过过滤机制
如果基础 Payload 被拦截,尝试以下高级技巧:
- 双重编码:将
../编码为%252e%252e%252f。 - 嵌套序列:使用
....//....//etc/passwd绕过单次字符串替换。 - 截断与空字节:在旧版 PHP 中使用
%00截断后缀验证。
4. 敏感文件挖掘
根据目标 OS 提取高价值目标:
- Linux:
/etc/shadow(需权限)、/root/.ssh/id_rsa、/var/log/apache2/access.log。 - Windows:
C:\boot.ini、C:\inetpub\wwwroot\web.config。
5. 权限提升(LFI RCE)
尝试将文件读取转化为代码执行:
- 日志投毒:向 User-Agent 发送 PHP 代码,再通过路径穿越读取 access.log。
- PHP 伪协议:使用
php://filter读取源码 Base64 编码,或使用data://执行内联代码。
下载和安装
下载 file-path-traversal 中文版 Skill ZIP
解压后将目录放入你的 AI 工具 skills 文件夹,重启工具后即可使用。具体路径参考内附的 USAGE.zh.md。
你可能还需要
暂无推荐