常见漏洞验证121 条

目录列表暴露检查

Web 服务器开启目录浏览时,部署包、备份与临时文件可能被枚举;检查各目录访问与响应特征即可确认。

目录列表暴露是什么问题

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),并从部署流程中排除备份与临时文件——只关开关不清理文件,敏感内容仍然可被猜路径下载。
列表内的文件不要逐个下载取证:确认文件名可见即已构成问题,批量下载会让测试方持有一份客户数据。

易错点

  • 对列表内文件逐个下载取证:从发现暴露面变成获取客户数据,扩大泄密与责任
  • 只测根目录:上传目录、静态资源域与子目录才是列表暴露的高发位置
  • 只关开关不清理文件:路径可被猜测的备份文件仍能直接下载
  • 忽略不同服务器的差异:Nginx、Apache、IIS 与云存储的索引行为都不一样,需分别核对

数据来源与参考

  • OWASP WSTG WSTG-CONF-04
  • Nginx 官方文档(autoindex)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌