Pikachu靶场-合集
字数 1352 2025-08-24 20:49:22

Pikachu靶场漏洞教学:不安全的文件下载、目录遍历与敏感信息泄露

1. 不安全的文件下载漏洞

1.1 漏洞概述

不安全的文件下载漏洞通常出现在Web系统的文件下载功能中。当用户点击下载链接时,后台接收文件名参数后直接拼接进文件路径而不进行安全校验,攻击者可通过构造恶意路径下载服务器上的敏感文件。

1.2 漏洞原理

  1. 前端发送下载请求,包含需要下载的文件名
  2. 后台直接将文件名拼接到下载路径中
  3. 缺乏对文件名的安全校验
  4. 攻击者可构造如../etc/passwd的路径下载系统敏感文件

1.3 漏洞复现步骤

  1. 找到文件下载功能点(如点击球员名字)
  2. 抓包查看数据包,定位filename参数
  3. 修改filename值为../down_nba.php(或其他路径穿越尝试)
  4. 通过repeater重发请求
  5. 成功下载服务器上的非预期文件

1.4 防御措施

  • 对前端传入的文件名进行严格校验
  • 限制可下载的文件目录范围
  • 使用白名单机制,只允许下载特定类型的文件
  • 对文件名进行规范化处理,防止路径穿越

2. 目录遍历漏洞

2.1 漏洞概述

目录遍历漏洞发生在Web功能将需要访问的文件定义为变量传递给后台时,由于缺乏安全校验,攻击者可通过../等路径跳转符访问服务器上的任意文件。

2.2 与相关漏洞的区别

  • 不安全的文件下载:主要用于下载文件
  • 文件包含漏洞:主要用于执行文件
  • 敏感信息泄露:无主动路径穿越,直接暴露信息
  • 目录遍历:通过路径穿越读取/执行非预期文件

2.3 漏洞复现步骤

  1. 观察URL参数(如title参数)
  2. 尝试修改参数为README.md查看是否能直接读取
  3. 尝试路径穿越:../dir.php
  4. 成功读取服务器上的非预期文件内容

2.4 防御措施

  • 对用户输入进行严格过滤,禁止../等特殊字符
  • 使用白名单机制限制可访问的文件
  • 设置目录访问权限
  • 对文件路径进行规范化处理

3. 敏感信息泄露

3.1 漏洞概述

由于后台人员疏忽或设计不当,导致不应被前端用户看到的数据被轻易访问到,包括:

  1. 直接列出目录下的文件列表
  2. 错误信息中包含系统/中间件/语言版本
  3. 前端源码中包含敏感信息(后台地址、内网接口、账号密码等)

3.2 常见泄露方式

  1. 目录列表泄露:通过访问URL下的目录直接列出文件
  2. 错误信息泄露:错误页面显示系统详细信息
  3. 源码泄露:HTML/CSS/JS中包含敏感信息
  4. 测试账号泄露:前端代码中硬编码测试账号

3.3 漏洞复现示例

  1. F12审查元素,查找敏感信息
  2. 发现测试账号lili/123456
  3. 使用该凭证成功登录
  4. 观察登录后URL为/vul/infoleak/abc.php
  5. 退出后直接访问该URL仍可进入

3.4 防御措施

  • 禁用目录列表功能
  • 自定义错误页面,不显示系统详细信息
  • 前端代码中不包含敏感信息
  • 测试账号不硬编码在前端
  • 实施适当的访问控制

4. 综合防御建议

  1. 输入验证:对所有用户输入进行严格验证
  2. 最小权限原则:限制Web服务器的文件系统访问权限
  3. 信息隐藏:不暴露不必要的系统信息
  4. 安全编码:遵循安全编码规范
  5. 定期审计:检查系统是否存在信息泄露风险

通过理解这些漏洞的原理和复现方法,开发人员可以更好地防范相关安全问题,构建更安全的Web应用。

Pikachu靶场漏洞教学:不安全的文件下载、目录遍历与敏感信息泄露 1. 不安全的文件下载漏洞 1.1 漏洞概述 不安全的文件下载漏洞通常出现在Web系统的文件下载功能中。当用户点击下载链接时,后台接收文件名参数后直接拼接进文件路径而不进行安全校验,攻击者可通过构造恶意路径下载服务器上的敏感文件。 1.2 漏洞原理 前端发送下载请求,包含需要下载的文件名 后台直接将文件名拼接到下载路径中 缺乏对文件名的安全校验 攻击者可构造如 ../etc/passwd 的路径下载系统敏感文件 1.3 漏洞复现步骤 找到文件下载功能点(如点击球员名字) 抓包查看数据包,定位filename参数 修改filename值为 ../down_nba.php (或其他路径穿越尝试) 通过repeater重发请求 成功下载服务器上的非预期文件 1.4 防御措施 对前端传入的文件名进行严格校验 限制可下载的文件目录范围 使用白名单机制,只允许下载特定类型的文件 对文件名进行规范化处理,防止路径穿越 2. 目录遍历漏洞 2.1 漏洞概述 目录遍历漏洞发生在Web功能将需要访问的文件定义为变量传递给后台时,由于缺乏安全校验,攻击者可通过 ../ 等路径跳转符访问服务器上的任意文件。 2.2 与相关漏洞的区别 不安全的文件下载 :主要用于下载文件 文件包含漏洞 :主要用于执行文件 敏感信息泄露 :无主动路径穿越,直接暴露信息 目录遍历 :通过路径穿越读取/执行非预期文件 2.3 漏洞复现步骤 观察URL参数(如 title 参数) 尝试修改参数为 README.md 查看是否能直接读取 尝试路径穿越: ../dir.php 成功读取服务器上的非预期文件内容 2.4 防御措施 对用户输入进行严格过滤,禁止 ../ 等特殊字符 使用白名单机制限制可访问的文件 设置目录访问权限 对文件路径进行规范化处理 3. 敏感信息泄露 3.1 漏洞概述 由于后台人员疏忽或设计不当,导致不应被前端用户看到的数据被轻易访问到,包括: 直接列出目录下的文件列表 错误信息中包含系统/中间件/语言版本 前端源码中包含敏感信息(后台地址、内网接口、账号密码等) 3.2 常见泄露方式 目录列表泄露 :通过访问URL下的目录直接列出文件 错误信息泄露 :错误页面显示系统详细信息 源码泄露 :HTML/CSS/JS中包含敏感信息 测试账号泄露 :前端代码中硬编码测试账号 3.3 漏洞复现示例 F12审查元素,查找敏感信息 发现测试账号 lili/123456 使用该凭证成功登录 观察登录后URL为 /vul/infoleak/abc.php 退出后直接访问该URL仍可进入 3.4 防御措施 禁用目录列表功能 自定义错误页面,不显示系统详细信息 前端代码中不包含敏感信息 测试账号不硬编码在前端 实施适当的访问控制 4. 综合防御建议 输入验证 :对所有用户输入进行严格验证 最小权限原则 :限制Web服务器的文件系统访问权限 信息隐藏 :不暴露不必要的系统信息 安全编码 :遵循安全编码规范 定期审计 :检查系统是否存在信息泄露风险 通过理解这些漏洞的原理和复现方法,开发人员可以更好地防范相关安全问题,构建更安全的Web应用。