iwebse靶场文件包含漏洞-本地文件包含,如果文件中存在恶意代
iwebse靶场文件包含漏洞-本地文件包含,如果文件中存在恶意代
目录
编辑
文件包含漏洞简介
文件包含常见函数
PHP中文件包含函数有以下四种:
本地文件包含
源码分析
文件包含漏洞简介
文件包含函数的参数没有经过过滤或者严格的定义,并且参数可以被用户控制,这样就可能包含非预期的文件。如果文件中存在恶意代码,文论文件是什么类型,文件内的恶意代码都会被解析并执行。 文件包含漏洞可能会造成服务器的网页被恶意篡改、网站被挂马、服务器被远程控制、被安装后门等危害。
文件包含常见函数
PHP中文件包含函数有以下四种:
include | 包含并运行指定文件,include在出错时产生警告(E_WARNING),脚本会继续执行 |
include_once | 在脚本执行期间包含并运行指定文件,php会检查文件是否被包含,如果是则不执行 |
require | 包含并运行指定文件。require在出错时产生E_COMPLIE_ERROR级别错误,终止运行 |
require_once | 和require完全相同,区别是:php会检查文件是否被包含,如果是则不执行 |
本地文件包含
本地文件包含漏洞可以获取系统本地的其他内容信息,无限制的本地文件包含是指代码中没有为包含文件指定特定的前缀或者.php、.html等扩展名,因此攻击者可以利用文件包含漏洞读取操作系统中的其他文件,获取敏感信息,或者执行文件中的代码。
源码分析
<?php if(isset($_GET['filename'])){ $filename = $_GET['filename']; include($filename); }else{ exit(); } ?>
在以上代码中,$_GET['filename']参数没有经过严格的过滤,直接带入了include函数,攻击者可以修改$_GET['filename']的值,加载其它文件,执行非预期的操作,由此造成了文件包含漏洞。(根据上面的源码也可以得出这个是无限制的本地包含)
很明显这个是让我们访问这个文件
当我们访问的时候发现得到的返回,并不是以txt文件形式,而是已经被执行了的文件,这说明这个可以直接执行包含文件中的信息。
除了无限制的本地文件包含之外肯定也有有限制的本地文件包含。内容和解决方法会在下一篇文章上讲述。
评论暂时关闭