1、为何会出现文件包含漏洞
相同内容或方法在多个页面显示或调用,文件包含漏洞又称为目录遍历漏洞或任意文件访问漏洞。分为本地文件包含(LFI:Local File Inclusion),远程文件包含(RFI:Remote File Inclusion),也可分为静态文件包含,动态文件包含。
2、静态文件包含
页面中直接引用静态文件。
main.php内容如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Home</title>
</head>
<body>
<h1>这是你第二次访问本网站</h1>
<p>为何用TextEditor编写的汉字打开就乱码?</p>
<p>欢迎下次再来!</p>
<?php include 'footer.php'; ?>
</body>
</html>
footer.php文件内容如下:
<?php
header("content-type:text/html;charset=utf-8");
echo "<p>copyright @ 2023-".date("Y")."测试网</p>";
?>
静态文件包含效果:
浏览器访问: http://127.0.0.1/fileinc/main.php?
3、动态文件包含
被包含的文件通过参数传入,增加了页面包含的灵活性。
include.php文件内容如下:
<?php
$file = $_GET['file'];
if(isset($file)){
include("$file");
}else{
echo "file fail!";
}
?>
动态文件包含效果:
浏览器访问: