当前位置: 首页 > news >正文

文件读取漏洞路径与防御总结

文件读取漏洞路径与防御总结

文件读取漏洞允许攻击者通过路径遍历等手段访问未授权的文件。以下是Linux和Windows系统中常见敏感路径的归纳及防御建议:


Linux 系统常见敏感路径

  1. 系统关键文件

    • /etc/passwd:用户账户信息(可被用来枚举用户)。
    • /etc/shadow:用户密码哈希(需root权限)。
    • /etc/group:用户组信息。
    • /etc/hosts:网络主机配置。
    • /etc/sudoers:sudo权限配置。
  2. 敏感配置文件

    • Web应用配置:/etc/apache2/apache2.conf/etc/nginx/nginx.conf
    • 数据库配置:/etc/mysql/my.cnf/var/lib/mysql(数据文件)。
    • SSH密钥:~/.ssh/id_rsa(私钥)、~/.ssh/known_hosts
    • 环境变量文件:~/.bashrc~/.profile/proc/self/environ(进程环境变量)。
  3. 日志文件

    • 系统日志:/var/log/auth.log(认证日志)、/var/log/syslog
    • Web日志:/var/log/apache2/access.log/var/log/nginx/access.log
  4. 进程与内存

    • /proc/self/cmdline:当前进程的命令行参数。
    • /proc/self/maps:进程内存映射。
    • /proc/self/fd/:进程打开的文件描述符。
  5. 用户数据与历史

    • Shell历史:~/.bash_history~/.zsh_history
    • 临时文件:/tmp目录下的敏感临时文件。
  6. 特殊设备与虚拟文件

    • /dev/null/dev/zero(通常无害,但可能用于测试)。
    • /sys/class/net/(网络接口信息)。

Windows 系统常见敏感路径

  1. 系统关键文件

    • C:\Windows\System32\drivers\etc\hosts:网络主机配置。
    • C:\Windows\win.iniC:\Windows\system.ini:遗留系统配置。
    • SAM数据库(需卷影副本):C:\Windows\System32\config\SAM(通常被锁定)。
    • 注册表文件:C:\Windows\System32\config\SYSTEMSOFTWARESECURITY
  2. 用户数据与配置文件

    • 用户目录:C:\Users\<用户名>\DocumentsDesktopDownloads
    • Web应用配置:C:\inetpub\wwwroot\web.config(IIS)、appsettings.json
    • SSH密钥:C:\Users\<用户名>\.ssh\id_rsa
  3. 日志文件

    • IIS日志:C:\inetpub\logs\LogFiles\W3SVC1
    • 系统事件日志:C:\Windows\System32\winevt\Logs\Security.evtx
  4. 服务与数据库文件

    • SQL Server数据文件:C:\Program Files\Microsoft SQL Server\MSSQL\DATA\*.mdf
    • 第三方应用配置:如C:\xampp\php\php.ini
  5. 特殊路径与UNC路径

    • 短文件名:利用C:\Progra~1\绕过路径过滤。
    • 长路径语法:\\?\C:\Windows\...
    • 网络共享:\\127.0.0.1\C$\Windows\...(需权限)。
  6. 备份与临时文件

    • 备份文件:*.bak*.old*.tmp
    • 页面文件:C:\pagefile.sys(需系统权限)。

常见利用手法

  • 路径遍历:使用../(Linux)或..\(Windows)跳出限制目录。
  • 编码绕过:URL编码(如%2e%2e%2f)、UTF-8编码、双写(....//)。
  • 绝对路径读取:直接指定完整路径(如C:\Windows\system32\cmd.exe)。

防御建议

  1. 输入过滤

    • 规范化路径后检查是否在允许范围内。
    • 过滤../..\、空字节(%00)等字符。
  2. 最小权限原则

    • 应用程序以低权限用户运行(如Linux的www-data,Windows的IUSR)。
    • 使用沙盒或容器隔离敏感操作。
  3. 安全API

    • 使用语言内置的安全路径解析函数(如Python的os.path.realpath)。
  4. 文件系统权限

    • 限制敏感文件的读权限(如chmod 600 /etc/shadow)。
  5. 日志监控

    • 监控异常文件访问行为(如频繁读取/etc/passwd)。

通过理解这些路径和攻击方式,开发者可以更有效地加固系统,避免敏感信息泄露。

相关文章:

  • c++重要知识点汇总(不定期更新)
  • 机器学习 day04
  • leetcode 239. 滑动窗口最大值
  • gcc/g++常用参数
  • linux-yum-异常
  • 【Docker】docker compose和docker swarm区别
  • UDP的单播组播与广播
  • Vue框架
  • vue2 切换主题色以及单页面好使方法
  • 【HCIA】聚合VLAN
  • QT+Visual Studio 配置开发环境教程
  • Java—异常体系
  • 如何开发专业小模型
  • windows触摸板快捷指南
  • 杭电多校10 : 1007 小塔的魔法树
  • 分糖果--思维+while判断
  • CSS- 4.2 相对定位(position: relative)
  • 前端基础之CSS
  • 【001】RenPy打包安卓apk 流程源码级别分析
  • (面试)TCP、UDP协议
  • 经济日报:人工智能开启太空经济新格局
  • 南京艺术学院博导、雕塑家尹悟铭病逝,年仅45岁
  • 解锁儿时愿望!潘展乐战胜孙杨,全国冠军赛男子400自夺冠
  • 工人日报:应对“职场肥胖”,健康与减重同受关注
  • 中国首艘海洋级智能科考船“同济”号试航成功,可搭载水下遥控机器人
  • 俄媒:俄乌伊斯坦布尔谈判将于北京时间今天17时30分开始