常见的php伪协议

晨曦

1. file:// 协议

概述

file:// 是一种用于访问本地文件系统的协议。在 URL 中,它指示访问本地计算机的文件。例如:

  • file:///etc/passwd(Linux系统中)
  • file:///C:/Windows/System32/drivers/etc/hosts(Windows系统中)

它是一个用于本地文件的 URI 协议,表示在本地计算机上读取文件的路径。

常见用途

  • 文件访问:它允许直接访问本地文件系统中的文件。这个协议通常用于 Web 浏览器中查看本地文件。
  • 浏览器功能:某些浏览器允许用户输入 file:// URL 来查看本地文件,而不通过HTTP或FTP。

攻击场景

如果 Web 应用没有正确验证和过滤用户输入,攻击者可能构造类似于 file:// 的路径来访问本地敏感文件。典型攻击案例包括:

  • 读取敏感文件:攻击者可以提交类似 file:///etc/passwd(Linux)或 file:///C:/Windows/System32/config/systemprofile(Windows)这样的路径来读取本地敏感文件。
  • SSRF(Server-Side Request Forgery)攻击:攻击者通过利用 SSRF 漏洞,将服务器请求引导到本地文件系统,读取服务器上的敏感数据,如 /etc/shadow、数据库配置文件等。

2. dict:// 协议

概述

dict:// 协议用于连接到 Dictionary Protocol 服务。字典协议(DICT)是一种用于访问在线字典的协议,它允许客户端通过互联网查询词汇定义。dict:// 协议的 URL 通常用于指示一个字典服务器和要查询的词条。例如:

dict://dict.org/merriam-webster/word

此 URL 会请求连接到 dict.org 的字典服务,并查询 merriam-webster 词条下的 word 内容。

常见用途

  • 字典查询:用户可以通过 dict:// 协议访问各种公共或私人的字典服务器,获取词汇和术语的定义。
  • 教育和参考:这种协议可以用于访问科学、技术和文学领域的专业词汇。

攻击场景

虽然 dict:// 协议本身并不会直接引发严重的安全问题,但如果 Web 应用错误地处理它,可能会导致一些间接的攻击机会。例如:

  • SSR攻击:攻击者如果能够控制 Web 应用输入的 URL,可能诱使应用通过 dict:// 协议访问敏感内网资源(比如某些内部字典服务或数据库),从而泄露数据。
  • 暴露内部字典服务:某些应用可能通过 dict:// 协议连接到内部的字典服务,如果攻击者可以操控输入,可能会导致未授权的服务访问,进而泄露信息。

3. gopher:// 协议

概述

gopher:// 协议源自早期的互联网协议 Gopher,它是一种用于信息检索的协议,允许用户通过结构化的层次目录访问信息。虽然 Gopher 协议已经过时,但仍然存在一些遗留的 Gopher 服务器,供用户访问文件、文档等信息。

例如:

gopher://gopher.floodgap.com/1/0/1/textfile.txt

这将连接到一个 Gopher 服务器,下载 textfile.txt 文件。

常见用途

  • 信息检索:Gopher 协议原本用于提供结构化的文本和信息检索,类似于早期的网络搜索引擎。
  • 教育和档案:一些旧的 Gopher 服务仍然在使用,用于存档资料或作为怀旧用途。

攻击场景

file://dict:// 协议相比,gopher:// 协议的安全问题更加隐蔽,可能会被错误地使用或滥用。攻击者可以利用 SSRF 漏洞通过 gopher:// 协议发起请求,尝试访问内网服务或获取信息。例如:

  • 内部服务扫描:攻击者可以通过 Gopher 协议扫描目标 Web 应用所在网络中的内网服务。例如,可以利用 gopher://127.0.0.1:8000 来访问内网服务。
  • 信息泄露:攻击者可能通过 Gopher 协议访问目标服务器的未授权端口,泄露敏感的内部信息。

  • 标题: 常见的php伪协议
  • 作者: 晨曦
  • 创建于 : 2025-01-02 13:10:52
  • 更新于 : 2025-01-14 03:24:47
  • 链接: https://blog.starlit.icu/2025/01/02/web/ssrf/php伪协议/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论