本地文件包含(Local File Include)
程序员文章站
2024-03-20 20:35:34
...
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代码,则会直接把文件内容输出。
上一篇: jquery - 添加图片文件
推荐阅读
-
本地文件包含(Local File Include)
-
sublime-text - SublimeText 求插件支持php跳转到require include包含的文件?
-
PHP包含文件-set_include_path
-
PHP包含文件函数include、include_once、require、require_once区别总结_php实例
-
file_get_contents读取路径中包含中文文件名有关问题
-
PHP关于file_get_contens函数向本地文件传参数的问题
-
pimchanok leuwisetpaibul php 伪造本地文件包含漏洞的代码
-
smarty 在include file 包含动态内容的时候报错(http 500),该如何处理
-
PHP下include包含文件有关问题
-
linux+nginx 应用include无法包含文件?