文件包含

Posted dyanbk

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件包含相关的知识,希望对你有一定的参考价值。

一.定义:

为了更好的使用代码的重用性,引入了文件包含函数,可以通过文件包含函数将文件包含进来,直接使用包含文件的代码

二.产生原因:

在文件包含时候,为了灵活包含文件,将包含文件设置为变量,通过动态变量来引入需要包含的文件时,用户可以对变量的值可控而服务器端未对变量值进行合理地校验或者校验被绕过,这样就导致了文件包含漏洞。

<?php 
    $file=$_GET['file'];
    include($file)

三.文件包含函数

include() //代码错误只生成警告(E_WARNING),并且脚本会继续
include_once()//包含一次
require()//代码错误生成致命错误(E_COMPILE_ERROR)并停止脚本
require_once() //包含一次

四.文件包含漏洞分类

1.本地文件包含

2.远程文件包含

php配置:

allow_url_fopen : 可以读取远程文件包含

allow_url_include: 可以使用include require

五.php伪协议

技术图片

http://127.0.0.1/index.php?file=php://filter/read=convert.base64-encode/resource=phpinfo.txt

技术图片

http://127.0.0.1/index.php?file=zip://phpinfo.zip%23phpinfo.txt

技术图片

六.其他利用方式:

1.00截断

2.长度截断(win:256 ,Linux:4096)

3.包含日志

4.包含session

七.文件包含防御:

1.php中使用open_basedir 配置文件限制访问在指定的区域

2.过滤点, 斜杠,反斜杠

3.禁止服务器远程文件包含

4.尽量不要使用动态包含,可以在需要包含的页面固定写好

以上是关于文件包含的主要内容,如果未能解决你的问题,请参考以下文章

Wordpress - 将代码片段包含到布局的选定部分的插件

Xcode 4.6 的备份代码片段

使用 Python 代码片段编写 LaTeX 文档

在代码片段中包含类型转换

如何为 XSLT 代码片段配置 CruiseControl 的 C# 版本?

在片段中以编程方式在视图中包含布局