一、敏感信息泄露的危害
1. 个人隐私与数据安全
- 身份盗窃:泄露个人身份信息(如姓名、身份证号、手机号)可被用于诈骗、冒名开户等犯罪活动。
- 账户劫持:暴露用户账号密码、邮箱等凭证,导致社交媒体、银行账户被非法登录。
- 敏感通信泄露:私密聊天记录、邮件内容外泄,可能引发信任危机或法律纠纷。
4. 攻击链扩展
横向渗透:
- 通过泄露的数据库密码,攻击内网其他系统。
- 利用配置文件中的API密钥,访问云服务资源(如AWS S3存储桶)。
高级持续性威胁(APT):
- 长期潜伏,结合多漏洞窃取商业机密或政府敏感信息。
二、漏洞成因分类
1. 输入验证不足
- 路径遍历:
- 未过滤用户输入的../、..\等字符(如download.php?file=../../etc/passwd)。
- 文件包含漏洞:
- 动态包含未校验的文件路径(如include($_GET['page']))。
- 未处理编码绕过:
- 未解码URL编码(如%2e%2e%2f对应../)或Unicode编码(如%c0%af对应/)。
2. 配置错误
- 服务器目录列表开启:
- Apache配置中Options +Indexes未关闭,暴露目录结构。
- 错误信息泄露:
- 显示详细错误(如PHP的display_errors = On),暴露文件路径或SQL语句。
- 备份文件残留:
- 临时文件(如config.php.bak)、版本控制文件(如.git/)未删除。
3. 权限管理缺陷
- 文件系统权限过宽:
- Web服务器用户(如www-data)拥有对系统目录(如/etc/)的读取权限。
- 最小权限原则未贯彻:
- 数据库账户使用root权限运行,而非专用低权限账户。
4. 不安全编码实践
- 危险函数调用:
- 直接使用system()、exec()执行用户输入(如ping $_GET['ip'])。
- 硬编码敏感信息:
- 在代码中明文存储密码(如$db_pass = "password123";)。
- 日志记录敏感数据:
- 记录用户密码、信用卡号等(如写入access.log)。
5. 设计缺陷
- 过度依赖客户端校验:
- 前端过滤../但后端未校验,可通过Burp Suite绕过。
- 缺乏分层防护:
- 未实施WAF(Web应用防火墙)或IDS(入侵检测系统)。
6. 第三方组件漏洞
- 老旧库或框架:
- 使用存在已知漏洞的库(如Log4j 2.x的CVE-2021-44228)。
- 供应链攻击:
- 第三方插件被篡改,注入恶意代码窃取信息。
四、防御策略总结
- 输入校验:白名单过滤 + 路径规范化。
- 权限最小化:限制Web用户权限,隔离敏感目录。
- 安全配置:关闭目录列表、错误回显,定期清理备份文件。
- 代码审计:禁用危险函数,加密存储敏感数据。
- 纵深防御:部署WAF、日志监控与入侵检测系统。
靶场示例
1,查看页面源代码得到泄露的敏感信息

使用密码lili/123456成功登录、
