Pikachu靶场-合集
字数 1352 2025-08-24 20:49:22
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应用。