前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >漏洞讲解之文件包含

漏洞讲解之文件包含

作者头像
Khan安全团队
发布2020-03-08 14:01:22
7190
发布2020-03-08 14:01:22
举报
文章被收录于专栏:Khan安全团队Khan安全团队

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

通过函数引入文件时,由于传入的文件名没有经过合理的校验,从而操作了预想之外的文件,导致意外的文件泄露甚至恶意的代码注入。

二、 文件包含漏洞有哪几种类型?

本地文件包含漏洞:本地包含顾名思义,就是在网站服务器本身存在恶意文件,然后利用本地文件包含使用。

远程文件包含漏洞:远程文件包含就是调用其他网站的恶意文件进行打开。

三、 php的包含函数

PHP中文件包含函数有以下四种

代码语言:javascript
复制
require()require_once()include()include_once()

include和require区别主要是,include在包含的过程中如果出现错误,会抛出一个警告,程序继续正常运行;而require函数出现错误的时候,会直接报错并退出程序的执行。

而include_once(),require_once()这两个函数,与前两个的不同之处在于这两个函数只包含一次,适用于在脚本执行期间同一个文件有可能被包括超过一次的情况下,你想确保它只被包括一次以避免函数重定义,变量重新赋值等问题。

四、 本地包含漏洞

本地包含顾名思义,就是在网站服务器本身存在恶意文件,然后利用本地文件包含使用。本地包含漏洞常被用来读取本地文件,上传包含恶意代码的图片,然后包含执行。

1. 包含恶意代码的文件

创建一个后缀为jpg的文件,内容如图:

上传该文件,直接访问,文件并不会执行

通过包含漏洞包含该文件后,php代码被执行了

2. 读取本地文件

可通过该漏洞读取一些配置文件等敏感文件

代码语言:javascript
复制
/etc/passwd//账户信息/etc/shadow//账户密码文件/usr/local/app/apache2/conf/httpd.conf//Apache2默认配置文件/usr/local/app/apache2/conf/extra/httpd-vhost.conf//虚拟网站配置/usr/local/app/php5/lib/php.ini //PHP相关配置/etc/httpd/conf/httpd.conf//Apache配置文件/etc/my.conf // mysql 配置文件

五、 远程包含漏洞

远程包含漏洞需要服务器期的服务器的php.ini的配置选项allow_url_fopen和allow_url_include为On,然后在自己的服务器放一个包含恶意代码的文件。

然后包含这个远程文件,通过文件包含漏洞执行文件内的代码。

手握日月摘星辰,安全路上永不止步。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Khan安全团队 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档