浅谈文件包含之伪协议

一、文件包含漏洞

文件包含漏洞,那么什么是文件包含漏洞,产生这个漏洞的原因是什么,这个漏洞的利用点是什么,这些理论知识是我们主要解决问题。

1.1文件包含漏洞原理解析

文件包含漏洞是指Web应用程序在包含文件时,没有对包含的文件名进行有效的安全验证,导致攻击者可以包含恶意文件(包括本地文件和远程文件)来执行任意代码的一种安全漏洞。通过PHP函数引入文件时,传入的文件名没有经过合理的验证,从而操作了预想之外的文件,可能导致意外文件泄露甚至文件泄露导致恶意代码的注入。

1.2文件包含函数

php中常见的文件包含函数有四种,常见的包含函数有:include()、require()、include_once()、require_once()那么这四种有啥区别呢?include()函数的包含在进行时,只会生成警告,但是脚本会继续,但是当require()的函数时,他会生成致命错误,并且停止脚本。

二、PHP的伪协议

PHP 提供了一些杂项输入/输出(IO)流,允许访问 PHP 的输入输出流、标准输入输出和错误描述符, 内存中、磁盘备份的临时文件流以及可以操作其他读取写入文件资源的过滤器。这便是利用点,使用这个进行包含,从而来进行利用。

2.1PHP://INPUT协议

php://input可以访问请求的原始数据的只读流,将post的请求数据当作php代码进行执行,当传入的参数作为文件名打开时,可以将php://input,同时post想要设置的文件内容,php执行时将会post当作文件内容进行执行,从而来导致任意代码执行。

2.2PHP://FILTER协议

php://filter可以获取指定文件的源代码,当它与包含函数结合时,php://filter流会被当作php文件执行,所以我们一般对其进行编码,从而让其不执行,导致文件进行任意读取。

2.3ZIP://协议

zip://可以访问压缩包里面的的文件,当他与包含函数结合时,zip://流会被当做php文件进行执行,从而来实现任意代码执行。因为php在底层进行时,并不会进行查看压缩包的后缀名,这导致了该协议可以进行此漏洞的致命错误。

2.4FILE://协议

file:// 用于访问本地文件系统,在CTF中通常用来读取本地文件的且不受allow_url_fopen与allow_url_include的影响

如有问题,评论区见!!!关于相关协议的漏洞复现,下篇文章进行详细的讲解。

相关推荐
qq_260241231 小时前
将盾CDN:零信任安全架构的演进与落地实践
安全·php·安全架构
qq_260241231 小时前
将盾CDN:移动网络环境下的安全接入技术
网络·安全
无忧智库2 小时前
深度解码:烟草行业数字化转型顶层设计与全场景落地实践(PPT)
安全·架构
瘾大侠3 小时前
OSCP+ 100分 7小时考试心得分享
安全·web安全·网络安全
lingggggaaaa4 小时前
PHP模型开发篇&MVC层&动态调试未授权&脆弱鉴权&未引用&错误逻辑
开发语言·安全·web安全·网络安全·php·mvc·代码审计
航Hang*4 小时前
Windows Server 配置与管理——第7章:配置DNS服务器
运维·服务器·网络·windows·安全·虚拟化
云和数据.ChenGuang4 小时前
鸿蒙6的**星盾安全(StarShield)技术
安全·华为·harmonyos
odoo中国5 小时前
Odoo 19 安全完整解析:多层防护守护企业核心数据
安全·odoo·数据备份·数据保护·用户权限·odoo19·用户访问规则
@insist1235 小时前
网络工程师-网络安全核心加密技术体系:对称 / 非对称加密、数字签名与证书全解析
网络·安全·web安全·网络工程师·软考·软件水平考试
m0_738120725 小时前
渗透知识ctfshow——Web应用安全与防护(三)
android·前端·安全