file协议小解——为什么是file:///path

admin 2025年5月23日15:54:38评论0 views字数 1608阅读5分21秒阅读模式

一、URI标准结构:协议与路径的分界

URI的通用格式遵循 scheme:[//authority][/path]的规则:

  • scheme
    :协议类型(如httpftpfile)。
  • authority
    :通常指域名、主机地址或用户认证信息(如user:[email protected]:8080)。
  • path
    :资源的具体路径。

示例

  • HTTP协议:http://example.com/path//后接域名)。
  • FTP协议:ftp://user:[email protected]/file//后接认证和主机)。

二、file:///的三斜杠逻辑

1. 本地文件的特殊性

对于本地文件系统,file协议的authority(主机部分)通常为空,但为了保持URI格式的完整性,需保留协议后的双斜杠(//)。

  • 问题
    :若直接写为 file://C:/path,可能被误解析为访问名为 C的网络主机。
  • 解决
    :通过三斜杠(///)明确表示无主机名,直接指向本地根目录。

三、协议设计的底层逻辑

1. RFC规范要求

根据RFC 8089(File URI规范):

文件URI格式为 file://<host>/<path>,若host为空(指向本地),则需保留双斜杠并直接接路径,即 file:///path

2. 避免歧义

  • 错误写法
    file://C:/path可能被解析为:
    • 协议:file
    • 主机:C(网络主机名)
    • 路径:/path
  • 正确写法
    file:///C:/path明确表示本地路径。

常用来读取的文件

windows:C:boot.ini   //查看系统版本C:WindowsSystem32inetsrvMetaBase.xml    //IIS配置文件C:Windowsrepairsam      //存储系统初次安装的密码C:Program Filesmysqlmy.ini   //Mysql配置C:Program Filesmysqldatamysqluser.MYD   //Mysql rootC:Windowsphp.ini   //php配置信息C:Windowsmy.ini   //Mysql配置信息C:Windowswin.ini   //Windows系统的一个基本系统配置文件

linux:root/.ssh/authorized_keys如需登录到远程主机,需要到.ssh目录下,新建authorized_keys文件,并将id_rsa.pub内容复制进去/root/.ssh/id_rsa       //ssh私钥,ssh公钥是id_rsa.pub/root/.ssh/id_ras.keystore    //记录每个访问计算机用户的公钥/root/.ssh/known_hosts      //记录每个访问计算机用户的公钥/etc/passwd/etc/shadow   //账户密码文件/etc/my.cnf   //mysql配置文件/etc/httpd/conf/httpd.conf   //apache配置文件/root/.bash_history      //用户历史命令记录文件/root/.mysql_history     //mysql历史命令记录文件/proc/mounts         //记录系统挂载设备/porc/config.gz       //内核配置文件/var/lib/mlocate/mlocate.db   //全文件路径/porc/self/cmdline        //当前进程的cmdline参数

延伸思考

  • 为什么http://后不需要三斜杠?→ 因为authority(主机名)不可省略,而file协议的authority可为空。
  • 如何在不同编程语言中安全处理file协议?→ 推荐使用标准库(如Python的pathlib或Java的Paths)替代直接拼接URI。
作者:【小L不会挖洞】

原文始发于微信公众号(船山信安):file协议小解——为什么是file:///path

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年5月23日15:54:38
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   file协议小解——为什么是file:///pathhttps://cn-sec.com/archives/4084088.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息