文件包含漏洞

文件包含

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

一、原理和定义

为什么会产生文件包含漏洞?

程序开发人员都希望代码更加灵活,所以通常会将被包含的文件设置为变量,用来进行动态调用,但正
是由于这种灵活性,从而导致客户端可以调用一个恶意文件,造成文件包含漏洞。
以php,webapplication 中居多。
jsp,asp,很少
这与程序开发人员的水平无关,而问题在于语言设计的弊端。
文件包含常用函数

在php中提供了四种包含文件的函数

1.incudec() //找不到被包含的文件时只会产生警告(E_WARNING),脚本将继续执行;
2.incudec_once() //此语句和incudec()语句类似,唯一区别是如果该文件中的代码已经被包含,
则不会再次包含;
3.require() //找不到被包含的文件时会产生致命错误(E_COMPILE_ERROR),并停止脚本。
4.require_once() //此行语句和require()语句类似,唯一区别是如果该文件中的代码已经被包
含,则不会再次包含。
include_once() 和 require_once() 这两个函数只包含一次,适用于在脚本执行期想确保它只被包括
一次以避免函数重定义,变量重新赋值等问题。
当使用这四个函数包含一个新的文件时,该文件将作为PHP代码执行,PHP内核并不会在意该包含的文
件是什么类型。(无论是txt、图片文件,远程URL,全都作为PHP代码执行)
文件包含利用:
不管文件后缀是否是php,都会尝试当做php文件执行,如果文件内容为php则会正常执行并返回结
果,如果不是,则会原封不动地打印文件内容,所以文件包含漏洞常常会导致任意文件读取与任意命令
执行;

1. 测试非php文件是否打印内容
2. 测试p
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值