第70天-Web攻防实战:文件下载、读取与删除漏洞&目录遍历与穿越

admin 2026-03-09 02:33:31 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文系统阐述了Web安全中的文件操作漏洞,涵盖文件下载、读取、删除及目录遍历等核心类型,指出其本质在于用户可控服务器文件路径。文章详细解析了黑盒挖掘的功能点与参数特征,以及白盒审计中的PHP危险函数,构建了从发现接口到获取权限的完整攻击链。最后提出路径白名单验证、权限最小化及关闭目录索引等防御措施,对渗透测试与安全开发具有较高参考价值。 综合评分: 85 文章分类: WEB安全,渗透测试,漏洞分析,实战经验,安全建设


攻击场景

1、删除配置文件

例如删除:

config.php
.env

导致系统崩溃。


2、删除安装锁

很多程序安装后会生成:

install.lock

攻击者删除后可以重新进入安装程序:

http://example.com/install/

重新初始化数据库,直接接管系统。

这种攻击在 CMS 系统中非常常见


四、目录安全问题

目录相关漏洞主要有两种:

1️⃣ 目录索引

2️⃣ 目录遍历


五、目录索引漏洞(Directory Index)

当 Web 服务器未关闭目录浏览功能时,访问目录会直接列出文件。

例如:

http://example.com/upload/

如果出现:

Index of /upload
-----------------------
file1.jpg
file2.zip
backup.sql
config.bak

攻击者可以直接下载敏感文件。


常见敏感文件

backup.sql
www.zip
db_backup.tar
config.bak

很多真实渗透测试中,数据库备份文件就是这样拿到的


六、目录遍历漏洞(Directory Traversal)

目录遍历也叫:

路径穿越漏洞(Path Traversal)

核心利用符号:

../

表示:

返回上一级目录

示例

假设服务器代码:

/download?file=report.pdf

攻击者修改为:

/download?file=../../../../etc/passwd

服务器可能返回:

root:x:0:0:root:/root:/bin/bash

说明攻击成功。


常见攻击路径

Linux:

/etc/passwd
/etc/shadow
/root/.ssh/id_rsa

Windows:

C:\Windows\win.ini
C:\boot.ini

七、黑盒漏洞挖掘方法

黑盒测试主要从:

功能点与 URL 特征

进行分析。


1、重点功能点

重点关注:

  • 文件上传

  • 文件下载

  • 文件删除

  • 文件管理器

  • 日志查看

  • 图片查看

  • 模板加载

这些功能几乎必然涉及文件操作


2、URL关键字特征

常见路径:

download
down
readfile
read
del
delete
dir
path
src
lang

示例:

/download?file=test.pdf
/read?file=1.txt
/delete?file=test.jpg

3、参数特征

常见参数名:

file
path
filepath
readfile
data
url
realpath
dir

例如:

/api/download?file=123.pdf
/api/read?path=log.txt

这些参数通常高度可疑


八、白盒代码审计方法

白盒分析重点是寻找:

文件操作函数


PHP危险函数

文件读取

readfile()
file_get_contents()
fopen()

文件下载

readfile()
fpassthru()

文件删除

unlink()

目录操作

opendir()
readdir()
scandir()

如果这些函数直接使用用户输入参数,例如:

$_GET['file']

就极有可能存在漏洞。


九、真实攻击链示例

一个典型攻击流程:

第一步:发现下载接口

/download.php?file=1.pdf

第二步:尝试路径遍历

/download.php?file=../../config.php

第三步:获取数据库配置

DB_USER=root
DB_PASS=123456

第四步:连接数据库

直接登录数据库获取:

  • 用户信息

  • 管理员账号

  • token


第五步:获取后台权限

最终实现:

完全控制系统


十、安全防御方案

开发者应采取以下措施:


1、禁止用户直接控制路径

不要直接拼接路径:

错误代码:

readfile($_GET['file']);

正确方式:

使用白名单:

$allow_files = ['a.pdf','b.pdf'];

2、路径规范化

使用:

realpath()

限制访问目录。


3、限制访问目录

例如:

/var/www/download/

禁止访问系统目录。


4、关闭目录索引

Nginx:

autoindex off;

Apache:

Options -Indexes

5、严格权限控制

避免 Web 进程拥有:

  • 删除系统文件

  • 访问系统配置


十一、总结

文件操作类漏洞在 Web 渗透测试中非常常见。

核心问题通常来自:

用户输入 → 直接控制文件路径

常见攻击方式包括:

  • 文件下载漏洞

  • 文件读取漏洞

  • 文件删除漏洞

  • 目录索引漏洞

  • 目录遍历漏洞

攻击者通过这些漏洞可以:

  • 获取数据库配置

  • 下载服务器备份

  • 删除关键文件

  • 遍历系统目录

在实际渗透测试中,这类漏洞往往是突破系统的第一步


参考案例复盘

https://mp.weixin.qq.com/s/Kiec7FhvpAmPf7zTWvJa3g
https://mp.weixin.qq.com/s/QqXxpTwXSjCNN622fSsZAQ
https://mp.weixin.qq.com/s/A2FvZMuPpHiewGrL5UDlHw
https://mp.weixin.qq.com/s/w2PH7EI6Z2R9diV_tBA1Zw

这些案例展示了:

  • 下载漏洞利用

  • 目录遍历攻击

  • 文件删除漏洞

  • 敏感信息泄露

值得深入复盘分析。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:AlphaNet 萧瑶 萧瑶《第70天-Web攻防实战:文件下载、读取与删除漏洞 & 目录遍历与穿越》

评论:0   参与:  0