【文件包含中的伪协议】

一、PHP伪协议

file:// — 访问本地文件系统
http:// — 访问 HTTP(s) 网址
ftp:// — 访问 FTP(s) URLs
php:// — 访问各个输入/输出流(I/O streams)
zlib:// — 压缩流
data:// — 数据(RFC 2397)
glob:// — 查找匹配的文件路径模式
phar:// — PHP 归档
ssh2:// — Secure Shell 2
rar:// — RAR
ogg:// — 音频流
expect:// — 处理交互式的流

php.ini 中的两个重要选项
请添加图片描述

1、file://

请添加图片描述

请添加图片描述

2、php://

请添加图片描述

PHP 中几个比较重要的伪协议:

请添加图片描述

3、php://input

请添加图片描述

php://input 协议还可以用来生成一句话木马,这里假设我们用的之前的直接包含的php代码:
请添加图片描述

4、php://output

请添加图片描述

5、php://filter/

php://filter/ead

请添加图片描述

php://read/write

请添加图片描述

6、zlib

请添加图片描述

请添加图片描述

请添加图片描述

7、data://

请添加图片描述

8、总结

请添加图片描述

二、实战

例题一

请添加图片描述

这是一个文件上传的页面可以上传一个文件上去
请添加图片描述
请添加图片描述
上传后发现失败了,那就说明不是文件上传的题目,我们在url地址栏发现了一个op参数和一个key参数,我们用文件审查查看一下源代码

请添加图片描述
点开后,看到一个op的参数,看到这个好参数我们会想到可能存在文件包含,比如我们改成upload

请添加图片描述
就变成了上传文件的页面,这里我们可以猜到通过op的参数包含不同的文件
请添加图片描述
这里我们用filter协议经过base64编码home文件后,得到一串base64编码
请添加图片描述
通过解码后面我们就看到了源码home的源码:

### 关于PHP文件包含漏洞与ZIP伪协议 #### ZIP伪协议概述 `phar://` 协议允许将多个PHP文件打包成单一文件,并支持与其他压缩格式如ZIP互转。此特性使得攻击者可以通过上传特制的ZIP文件并利用文件包含漏洞来执行任意代码[^1]。 #### 使用场景 当应用程序存在本地或远程文件包含漏洞时,如果服务器配置不当,则可能允许通过 `phar://` 或类似的伪协议访问和解析ZIP包内的资源。例如,在某些情况下,开发者可能会错误地认为只允许特定扩展名(如.jpg)是安全措施之一,但实际上这些图片文件内部可以嵌入恶意的PHP代码并通过ZIP归档绕过简单的文件类型检查[^2]。 #### 安全风险 这种类型的攻击可能导致严重的后果: - **远程命令执行**:一旦成功注入含有恶意脚本的ZIP档案,并被应用加载运行,就可实现完全控制目标主机。 - **敏感信息泄露**:攻击者能够读取系统上的任何文件,包括但不限于数据库凭证、源码等重要资料。 - **横向移动**:借助已获取权限进一步探索内网环境,寻找更多潜在弱点加以利用。 为了防止此类威胁的发生,建议遵循最佳实践指南加强防御层次,比如采用严格的输入验证策略、实施最小权限原则以及定期审查第三方库的安全状态等措施[^4]。 ```php // 不推荐的做法 - 存在安全隐患 include($_GET['page']); // 推荐做法 - 白名单限定合法页面路径 $allowed_pages = ['home', 'about']; $page = isset($_GET['page']) && in_array($_GET['page'], $allowed_pages) ? $_GET['page'] : 'home'; include("$page.php"); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值