温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2020-05-18 03:31:16 来源:网络 阅读:1531 作者:yttitan 栏目:安全技术

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

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

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

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

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

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

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

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

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

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

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

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

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

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI