常见的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 进行许可。
评论