文件包含漏洞学习(1)---简单了解

文件包含漏洞学习(1)

简介

程序开发人员一般会把重复使用的函数写道单个文件中,需要使用某个函数时直接调用此文件,而无需再踩编写,这个文件调用的过程一般称为文件包含。有时候将包含的文件设置为变量,用来动态调试,这样就可能导致客户端可调用一个恶意文件,造成文件包含漏洞。文件包含漏洞常见于PHP语言中,但不代表其他的语言没有。

文件包含函数

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

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

include()和require()的区别,include在包含的过程中执行到include时才包含文件,找不到被包含文件时只会产生警告,脚本将继续执行,require 只要程序一运行就包含文件,找不到被包含的文件时会产生致命错误,并停止脚本。

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

利用条件

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

示例:

<?php

// The page we wish to display
$file = $_GET[ 'page' ];

?> 

这里$_GET[‘page’]参数未进行任何过滤,尝试本地包含。

image-20210913094215895

PHP中只要文件内容符合PHP语法规范,包含时不管扩展名是什么都会被PHP解析,
若文件内容不符合PHP语法规范则会暴漏其源码。

image-20210913094734037

还分为本地包含,远程包含等等,今天简单学习一下,这里后续一一补充。

参考:
https://www.freebuf.com/articles/web/182280.html
https://www.cnblogs.com/bmjoker/p/9035259.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值