本地文件包含(Local File Include)

0x01 漏洞简介

如果允许客户端输入控制动态包含在服务器端的文件,会导致恶意代码的执行与敏感信息的泄露,主要包括本地文件包含和远程文件包含两种形式

0x02 漏洞成因

文件包含漏洞的产生原因是通过引入文件时,由于传入的文件名没有经过合理的校验,或者校验被绕过,从而操作了预想之外的文件,就可能导致意外的文件泄露甚至恶意代码注入。当被包含的文件在服务器本地时,就形成的本地文件包含漏洞

0x03 实例分析

#!php
if ($_GET['func']) {
   include $_GET['func'];
} else {
   include 'default.php';
}

程序的本意可能是当提交url为http://example.com/index.php?func=add.php时,调用add.php里面的样式内容和功能。直接访问http://example.com/index.php则会包含默认的default.php

那么问题来了,如果我们提交http://example.com/index.php?func=upload/pic/evil.jpg ,且evil.jpg是由黑客上传到服务器上的一个图片,在图片的末尾添加了恶意的php代码,那么恶意的代码就会被引入当前文件执行。

如果被包含的文件中无有效的php代码,则会直接把文件内容输出。

你可能感兴趣的:(本地文件包含(Local File Include))