【文件包含】文件包含漏洞知识总结

【文件包含】文件包含漏洞知识总结

Hello,各位小伙伴周五好~

这里是你们的劳模小编~

在这里插入图片描述

之前一期,我们已经一起总结了文件上传和文件解析漏洞。

今天我们就一起来看看文件包含漏洞吧~


一、什么是文件包含漏洞?

1、文件包含概述

和SQL注入等攻击方式一样,文件包含漏洞也是一种“注入型漏洞”,其本质就是输入一段用户能够控制的脚本或者代码,并让服务器端执行。

什么叫包含呢?以PHP为例,我们常常把可重复使用的函数写入到单个文件中,在使用该函数时,直接调用此文件,而无需再次编写函数,这一过程就叫做包含。

有时候由于网站功能需求,会让前端用户选择要包含的文件,而开发人员又没有对要包含的文件进行安全考虑,就导致攻击者可以通过修改文件的位置来让后台执行任意文件,从而导致文件包含漏洞。

以PHP为例,常用的文件包含函数有以下四种:

include(),require(),include_once(),require_once()

区别如下:

  • require(),找不到被包含的文件时会产生致命错误,并停止脚本运行。
  • include(),找不到被包含的文件时只会产生警告,脚本将继续运行。
  • include_once()与include()类似,唯一区别是如果该文件中的代码已经被包含,则不会再次包含。
  • require_once()与require()类似,唯一区别是如果该文件中的代码已经被包含,则不会再次包含。

2、漏洞成因分析

我们先直接来看一个简单的例子,网页代码如下:

在这里插入图片描述

再创建一个phpinfo.php页面,代码如下:

在这里插入图片描述

利用文件包含,我们通过include函数来执行phpinfo.php页面,成功解析:

在这里插入图片描述
将phpinfo.php文件后缀改为txt后进行访问,依然可以解析:

在这里插入图片描述
修改为jpg格式,也可以解析:

在这里插入图片描述

可以看出,include()函数并不在意被包含的文件是什么类型,只要有php代码,都会被解析出来。

在上一期文件上传漏洞的总结中,我们上传了一个jpg格式的一句话木马,如果网站有文件包含漏洞,jpg文件就可以被当作php文件进行解析,现在知道是为什么了吧~

我们将phpinfo.jpg的内容改成一段文字:

在这里插入图片描述

再次进行访问,

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值