文件包含漏洞等你来看

文件包含漏洞等你来看

原创 Caigensec 菜根网络安全杂谈 2025-01-12 02:16

点击标题下「蓝色微信名」可快速关注

免责声明:本文仅用于合法范围的学习交流,若使用者将本文用于非法目的或违反相关法律法规的行为,一切责任由使用者自行承担。请遵守相关法律法规,勿做违法行为!本公众号尊重知识产权,如有侵权请联系我们删除。

01

文件包含漏洞介绍

1、漏洞简介

文件包含漏洞是指由于应用程序在包含文件时,没有对包含文件的路径和内容进行严格的验证和过滤,导致攻击者可以利用这个机制,让服务器包含并执行非预期的文件。

2、PHP 中的文件包含函数

(1)include()

在执行到该函数时,它会尝试将指定的文件包含进来并执行其中的代码。如果文件不存在,它会产生一个警告,但脚本会继续执行。

(2)require()

和 include () 类似,但如果指定的文件不存在,它会产生一个报错,脚本会停止执行。

(3)include_once()

和 include () 功能基本相同,但它会检查文件是否已经被包含过。如果已经包含过,就不会再次包含,避免了重复包含可能导致的问题,如函数重定义等。

(4)require_once()

结合了 require () 和 include_once () 的特点。如果文件不存在,会产生错误使脚本停止执行,并且会检查文件是否已经被包含过,避免重复包含。

3、文件包含漏洞分类

(1)本地文件包含漏洞

本地文件包含漏洞是指攻击者能够利用应用程序中的文件包含功能,去包含服务器本地文件系统中的文件

(2)远程文件包含漏洞

远程文件包含漏洞是指攻击者可以让应用程序包含一个远程服务器上的文件。这要求服务器配置允许包含远程文件,并且应用程序没有对文件包含参数进行严格的限制。

在 PHP 中,
allow_url_fopen

allow_url_include
这两个选项通常需要同时开启才可能出现远程文件包含漏洞。

02

Pikachu靶场文件包含漏洞练习

1、本地文件包含漏洞

查看正常功能,发现是filename控制文件路径

把file1改为file6发现了用户名密码,也可以用Burp的Intrude模块爆破

尝试输入../../../../../../Windows/win.ini,可以查看win.ini的内容,当然也可以查看其他本地文件

2、远程文件包含漏洞

提示
allow_url_include没有打开,去设置一下

如何打开
allow_url_include

在phpStudy设置里面找到使用的php版本并点击,更改php.ini中的allow_url_include=On,保存并退出。

我在另一台虚拟机kali中的/var/WWW/http目录下新建了一个1.txt,内容为HELLO CiagenSec,我的kali的IP地址为192.168.119.129

在kali中开启apache服务service apache2 start

回到靶场,输入

filename=http://192.168.119.129/1.txt,可以看到已经包含了这个远程文件

THE END

亲爱的朋友,若你觉得文章不错,请点击关注。你的关注是笔者创作的最大动力,感谢有你