首页 > 技术文章 > 文件包含

lzkalislw 2021-07-24 11:43 原文

文件包含的基础知识。
一、文件包含
1.概念 文件包含:程序员通常会把可重复使用函数或语句写到单个文件中,在使用某个功能时,直接调用此文件,不用再编写调用文件的过程称为包含。

2.PHP 中的⽂件包含语句 PHP 提供了四个⽂件包含的语句,四个语句之间略有不同:
语句区别include()多次包含,如果包含失败,脚本产⽣警告,继续运⾏。include_once()⼀次包含,如果包含失败,脚本产⽣警告,继续运⾏。require()多次包含,如果包含失败,脚本产⽣错误,结束执⾏。require_once()⼀次包含,如果包含失败,脚本产⽣错误,结束执⾏。
相应配置: ⽂件包含是PHP 的基本功能之⼀,有本地⽂件包含与远程⽂件包含之分。 通俗来讲,本地⽂件包含就是可以读取和打开本地⽂件,远程⽂件包含就是可以远程(⽅式)加载⽂件。 可通过php的配置文件php.ini中的选项进行配置
allow_url_fopen = On/Off # http://|ftp:// 访问远程⽂件
allow_url_include = On/Off # require|include http://|ftp:// 访问远程⽂件
12
 包含示例: 示例代码:
// fileInclusion.php
if(!empty($_GET['path'])){
 include $_GET['path'];
}else{
 echo "?path=./info.php"; }
12345
本地文件包含:
http://192.168.16.109/fileInclusion/fileInclusion.php?path=./info.php
1
 远程⽂件包含
http://localhost/fileInclusion/fileInclusion.php?
path=http://192.168.16.109/phpinfo.php
12
2.漏洞原理及特点 优点:PHP ⽂件包含是程序设计的基础功能之⼀,能够减少代码量,提⾼开发效率。 缺点:会产生文件包含漏洞 漏洞原理:文件包含配置(php.ini)、动态调用、客户端可控。 特点: ⽆视⽂件扩展名读取⽂件。
# 直接读取图⽚的源代码
http://192.168.48.139/fileInclusion/fileInclusion.php?
path=../DVWA\dvwa\images\login_logo.png
123
 
⽆条件解析PHP 代码
# 当读取到被包含⽂件的源码,如果遇到符合PHP 代码规范的内容,就会⽆条件执⾏
# 同时为图⽚⽊⻢提供了出路
http://192.168.48.139/fileInclusion/fileInclusion.php?path=1_2.jpg
123
可以和图片木马结合,来执行图片木马,完了用蚁剑连接。

推荐阅读