网络安全检测与防护技术
国家地方联合工程研究中心深圳分中心

靶场科普 | 文件包含靶场之基本绕过方式

发表时间:2021-06-21 17:01

今天,给大家介绍一下“东塔攻防世界”其中的一个靶场:文件包含靶场之基本绕过方式”。


注:本实验需要使用vps

一、实验介绍

1.漏洞简介

1)文件包含漏洞是一种最常见的漏洞类型,它会影响依赖于脚本运行时的web应用程序。当应用程序使用攻击者控制的变量构建可执行代码的路径时,文件包含漏洞会导致攻击者任意控制运行时执行的文件。如果一个文件包含这个漏洞,为了方便起见,经常在开发阶段就实施。由于它经常用于程序开发阶段,所以这就为后来的攻击埋下了伏笔并导致了各种基于文件的攻击。


2)文件包含漏洞主要是程序员把一些公用的代码写在一个单独的文件中,然后使用其他文件进行包含调用,如果需要包含的文件使用硬编码,一般是不会出现安全问题,但是有时可能不确定需要包含哪些具体文件,所以就会采用变量的形式来传递需要包含的文件,但是在使用包含文件的过程中,未对包含的变量进行检查及过滤,导致外部提交的恶意数据作为变量进入到了文件包含的过程中,从而导致提交的恶意数据被执行。


3)文件包含漏洞分为本地文件包含(Loacl File Inclusion,LFI)和远程文件包含(Remote File Inclusion,RFI)。这种漏洞貌不惊人,却危害很大。通过文件包含漏洞,可以读取系统中的敏感文件,源代码文件等,如密码文件,通过对密码文件进行暴力破解。若破解成功则可获取操作系统的用户账户,甚至可通过开放的远程连接服务进行连接控制。另外不管是本地文件包含还是远程文件包含,文件包含漏洞还可能导致执行任意代码。


2.原理

程序开发人员会把重复使用的函数写到单个文件中,需要使用某个函数直接调用此文件。而无需再次编写,这种文件调用的过程一般被称为文件包含。


3.成因

文件包含函数加载的参数没有经过过滤或者严格的定义,可以被用户控制,包含其他恶意文件,导致了执行了非预期的代码。


4.文件包含分类

分为低级、中级、高低绕过。

低级绕过:文件包含靶场之基本绕过方式

中级绕过:1)双写绕过,2)file协议绕过

高级绕过:file协议绕过。           


二、实验目的

1.掌握文件包含漏洞的原理
2.掌握文件包含漏洞实操
3.熟悉文件包含防御方法


三、实验步骤

1.打开实验连接,查看实验环境。
2.根据解题思路进行实操,做好记录。


四、防御方式

1.在php代码中禁止0字节(\0),防止攻击者截断攻击。如:禁止0字节的目的:
2.在PHP中配置open_basedir,限制PHP仅能打开某个文件夹的文件,使攻击者 无法通过../等方式遍历服务器文件。
3.过滤.(点)/ (斜杠)\(反斜杠)
4.尽量避免包含动态的变量,尤其是用户可以控制的变量,可以通过枚举实现。


速度登录https://labs.do-ta.com/ GET起来

现在注册,立得50积分哟 ✌


东塔网络安全学院在各大平台均上线了各项活动和学习内容,快快登录以下各大平台学习起来吧~


微博、腾讯课堂、知乎、今日头条:

东塔网络安全学院

抖音:东塔网络安全培训

哔哩哔哩:东塔网络安全

了解更多活动和咨询欢迎微信添加:dongtakefu