【Web攻防】文件与目录安全漏洞详解:下载/删除/遍历/穿越实操指南

本文内容仅用于授权安全测试与学习,严禁未经许可对目标系统进行测试。

一、核心功能点与漏洞本质

前后台常见高危功能:

  • 文件下载、文件读取
  • 文件删除
  • 目录遍历
  • 目录穿越

这类漏洞本质:用户可控路径 + 服务端校验缺失/不严 = 越权读写删文件。


二、文件安全:下载 & 删除 实操原理

1. 文件下载漏洞

原理

文件下载 = 服务端读取文件并返回。

当下载功能通过参数指定文件名/路径,且未做白名单/路径限制时,可直接读取任意敏感文件。

常规安全URL(无直接风险)
复制代码
http://xxx.com/upload/123.pdf
风险URL(可控参数)
复制代码
http://xxx.com/down.php?file=123.pdf
典型利用

修改 file 参数读取系统/配置文件:

复制代码
?file=/etc/passwd
?file=../../etc/my.cnf
?file=../../config/config.php

可直接拿到:数据库账号密码、密钥、源码配置、系统信息。


2. 文件删除漏洞

原理

删除功能未校验:

  • 权限
  • 文件名/路径合法性
  • 操作范围

攻击者可构造路径删除任意文件,导致服务崩溃、程序异常、数据丢失。

常见触发点

后台文件管理、附件删除、图片删除、日志清理等。

典型利用
复制代码
del.php?filename=1.jpg
→ 改:
del.php?filename=../../config.inc.php
del.php?filename=../../index.php

可直接删配置、删入口、删库备份,造成业务瘫痪。


三、目录安全:遍历 & 穿越 实操原理

1. 目录遍历漏洞

原理

服务端允许列出目录内容,且未限制目录范围。

攻击者可直接获取目录结构、文件名、备份、日志、上传文件清单等信息。

利用价值
  • 发现备份文件 *.sql、*.zip
  • 发现上传目录、后台路径、配置文件
  • 为文件读取/删除/上传做信息铺垫

2. 目录穿越漏洞(路径穿越)

原理

通过 ../、..\、%2e%2e/ 等字符,跳出程序设定的业务目录,访问上级乃至根目录。

核心利用字符
复制代码
../
../../
../../../../
典型场景

后台文件管理、模板读取、头像查看、文件预览等功能。

利用示例
复制代码
path=upload/
→ 穿越:
path=upload/../../etc/

实现跨目录读取、跨目录删除、跨目录写入文件。


四、黑盒实战:快速定位漏洞

1. 重点功能点

  • 文件上传/下载/预览
  • 文件删除/编辑
  • 后台文件管理器
  • 图片/附件/模板加载

2. URL 特征识别

敏感关键词(URL中出现即重点测试)
  • 下载:download、down、file、readfile、read
  • 删除:del、delete、remove
  • 目录:dir、path、folder
  • 其他:src、lang、data、url、realpath
高危参数名
复制代码
file
path
filepath
realpath
data
url

只要参数可控,优先测试:

  • 绝对路径 /etc/passwd
  • 相对穿越 ../../etc/passwd

五、白盒审计:直接锁死漏洞代码

审计时直接搜索以下函数,几乎必出文件/目录漏洞。

PHP 高危函数(最常见)

  • 文件读取/下载:
    • file_get_contents()
    • readfile()
    • fopen()
  • 文件删除:
    • unlink()
  • 目录遍历:
    • opendir()
    • readdir()
  • 文件上传:
    • move_uploaded_file()

其他语言通用逻辑

  • Python:send_file()、open()
  • Java:FileInputStream、File、getPath()

只要用户输入直接拼接到路径,无白名单、无过滤、无路径限制,即为漏洞。


六、实战测试思路

  1. 找到文件下载/读取/删除/目录功能
  2. 抓包修改文件名/路径参数
  3. 尝试:
    • 绝对路径 /etc/passwd
    • 穿越路径 ../../../../etc/passwd
  4. 观察是否返回内容、是否删除成功、是否列出目录
  5. 进一步读取配置、数据库信息、系统文件
相关推荐
Csvn2 小时前
性能监控
前端
Csvn3 小时前
构建工具
前端
FRing033 小时前
vue2干货总结3(computed计算属性、watch监听器)
开发语言·前端·vue.js·vue2
kyriewen5 小时前
Skills 榜前 10 我全装了:只有 3 个能直接用
前端·javascript·程序员
IT_陈寒6 小时前
当Java的hashCode遇上Lombok,我的缓存被全清了
前端·人工智能·后端
工控丫丫6 小时前
帆软看板中经常使用的公式函数及经常搭的组合
前端·javascript·数据库
jerrywus6 小时前
我用 GPT-6.1-sol 做了台会讲解的 3D 售货机:60 罐饮料,一口没喝上
前端·agent·claude
孟陬8 小时前
Foobar 技术周刊#159:当看不懂代码时,如何高效排障调试。脏页陷阱:一条只读查询,写入数 TB 数据。推测解码:大模型加速利器
前端·人工智能·后端
Zhao-Jichao8 小时前
AI Prompting for Everyone 课程笔记 - P17 图像生成 Imaging Generation
前端
Highcharts.js9 小时前
智能数据分析组件Orbit 正式发布与快速上手体验教程
前端·人工智能·信息可视化·数据分析系统·highcharts·orbit·智能可视化