目录列表暴露是什么问题
Web 服务器(Nginx、Apache、IIS)开启目录浏览后,访问一个没有默认首页的目录会返回索引页面,把目录内所有文件名列出来。风险不在于「能看到文件名」,而在于列表里常常混着部署包、备份、日志、临时导出文件与源码,等于把资产清单与泄露线索一次交付。检查方式很简单:对已知目录去掉文件名后请求,看是否返回索引页;列表内容只做类型统计,不逐个下载。
基本信息
| 现象 | 目录 URL 返回索引页并列出文件与子目录 |
|---|---|
| 高价值目录 | 上传目录、静态资源、备份目录、日志目录、数据导出目录 |
| 服务器开关 | Nginx autoindex;Apache Indexes 选项;IIS 目录浏览 |
| 检查方式 | 对目录路径发起请求,观察返回页面类型 |
| 处置 | 关闭目录浏览,并从部署流程中排除备份与临时文件 |
典型使用场景
- 信息暴露类检查的常规项,覆盖成本低
- 上传目录核查:文件名是否可枚举,是否含用户上传的敏感文件
- 评估部署流程规范性:备份与打包文件是否被放在 Web 目录
- 结合备份文件暴露检查,判断整体信息暴露程度
- 修复验证:确认目录浏览已关闭且历史文件已清理
检查方式
检查方式
curl -sI https://example.com/uploads/ # 先看是否为索引页(HTML 响应)
curl -s https://example.com/uploads/ | head -30 # 只看页面结构是否为文件列表
# 记录:返回索引页的目录清单 + 文件类型统计(备份/配置/源码/日志)
# 不逐个下载列表中的文件;如需证明可访问性,最多取响应头
# 同一站点常有多处开启,需覆盖静态资源域与上传域返回特征与判断
| 返回特征 | 含义 | 处置 |
|---|---|---|
| 返回文件列表页面 | 目录浏览开启 | 列缺陷,建议关闭并清理列表内敏感文件 |
| 返回 403 | 已禁止列出但目录存在 | 低风险,记录为受控 |
| 返回站点首页或登录页 | 存在统一跳转 | 未开启浏览,无需处置 |
| 列表内含备份与配置文件名 | 信息暴露面显著扩大 | 优先定级,提示立即清理 |
修复视角:关闭目录浏览(如 Nginx 的 autoindex off),并从部署流程中排除备份与临时文件——只关开关不清理文件,敏感内容仍然可被猜路径下载。
列表内的文件不要逐个下载取证:确认文件名可见即已构成问题,批量下载会让测试方持有一份客户数据。