千家信息网

DVWA系列之14 文件包含漏洞分析

发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,程序开发人员通常会把可重复使用的函数写入到单个文件中,在使用某些函数时,直接调用此文件,而无需再次编写,这种调用文件的过程一般被称为包含。程序开发人员都希望代码更加灵活,所以通常会将被包含的文件设置为
千家信息网最后更新 2025年02月23日DVWA系列之14 文件包含漏洞分析

程序开发人员通常会把可重复使用的函数写入到单个文件中,在使用某些函数时,直接调用此文件,而无需再次编写,这种调用文件的过程一般被称为包含。程序开发人员都希望代码更加灵活,所以通常会将被包含的文件设置为变量,用来进行动态调用,但正是由于这种灵活性,从而导致客户端可以调用一个恶意文件,造成文件包含漏洞。

PHP中提供了四个文件包含的函数,分别是include()、include_once()、require()和require_once(),它们的区别如下:

  • require找不到被包含的文件时会产生致命错误,并停止脚本运行。

  • include找不到被包含的文件时只会产生警告,脚本将继续运行。

  • include_once与include类似,唯一区别是如果该文件中的代码已经被包含,则不会再次包含。

  • require_once与require类似,唯一区别是如果该文件中的代码已经被包含,则不会再次包含。

比如我们看下面这个例子,01.txt是一个正常的文本文件,但文件内容却是符合PHP语法的代码:

在02.php文件中包含01.txt,代码如下:

将这两个文件都放到D:\AppServ\www目录,然后在浏览器中访问02.php,可以看到01.txt中的代码被正确执行了。接下来将02.txt文件的扩展名分别改为jpg、rar、doc、xxx进行测试,发现都可以正确显示phpinfo信息。由此可知,只要文件内容符合PHP语法规范,那么任何扩展名都可以被PHP解析。

我们再创建一个测试文件03.txt,文件内容是"Hello,world!",并不符合PHP语法规范,可以发现这种文件可以直接显示其内容。

文件 代码 被包 内容 再次 函数 语法 人员 常会 程序 程序开发 脚本 开发 测试 运行 漏洞 接下来 由此可知 两个 例子 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 学习系统软件开发需要多久 海康服务器一体机关闭防火墙 互联网金融人才数据库 数据库错误918 计算机软件开发综合实训目的 机器学习变量数据库 无线网络技术与物流 厦门自动化软件开发 服务器文件需要管理员权限 大话西游服务器连接失败 小学网络安全组织机构 梦幻为什么不优化火区服务器 监控搜索服务器 网络技术基础会计名词解释 中山天翼软件开发公司 埃森哲大连软件开发英语方向 信息网络安全中转换是什么 昆明比较好的软件开发公司 数据库设计的两方面内容 服务器采集终端数据 渣打银行软件开发笔试技巧 南川区网络安全审计系统咨询辅导 嵌入式软件开发问答 长沙虫币互联网科技有限公司 数据库怎么向中间库传数据 在服务器里穿恐怖皮肤吓玩家 谷歌地球无法连接服务器 网络安全行业新机会 数据库设计的两方面内容 软件开发方向论文
0