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

embedded/2025/3/20 3:40:23/

由于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协议 的介绍应该有解题思路吧, 下文通过两种方式演示一下

解题步骤

phpfilter_53">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
      

phpinput_79">php://input

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

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

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

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

http://www.ppmy.cn/embedded/174037.html

相关文章

设计C语言的单片机接口

一、主要内容 (一)控制引脚 1、定义管脚 // 定义管脚的结构体 struct pin{ int id; // 管脚编号 int mode; // 模式&#xff0c;输入为1&#xff0c;输出为0 int pull; // 输入电阻 int driver; // 功率 } 2、输出电平 语法&#xff1a; void pin_output(s…

c++ 基础题目lambda

1. auto lambda = [](double x) { return static_cast<int>(x); }; 是 匿名函数对象 ,不可直接声明 a.可以赋值给一个与其类型兼容的 std::function 类型的对象 std::function<int(int, int)> lambda = [](int x, int y) { return x + y; }; b.使用具体的 lambda …

Java List 接口的核心 API

1. 添加元素 方法&#xff1a; boolean add(E e)&#xff1a;将元素添加到列表末尾。 void add(int index, E element)&#xff1a;将元素插入到指定位置。 boolean addAll(Collection<? extends E> c)&#xff1a;将集合中的所有元素添加到列表末尾。 boolean addA…

Deepseek API+Python测试用例一键生成与导出-V1.0.2【实现需求文档图片识别与用例生成自动化】

在测试工作中&#xff0c;需求文档中的图片&#xff08;如界面设计图、流程图&#xff09;往往是测试用例生成的重要参考。然而&#xff0c;手动提取图片并识别内容不仅耗时&#xff0c;还容易出错。本文将通过一个自研小工具&#xff0c;结合 PaddleOCR 和大模型&#xff0c;自…

三月九次前端面试复盘:当场景题成为通关密钥

三月初集中面了包括字节、美团、滴滴在内的9家公司&#xff0c;经历7场技术面2场Leader面后&#xff0c;发现如今的面试逻辑已发生根本转变。这里分享真实经历与题目&#xff0c;供近期求职者参考。 一、面试形态变化&#xff1a;从理论背诵到实战推演 1. 八股文边缘化&#…

python web开发flask库安装与使用

要在 Python 中使用 Flask 进行 Web 开发&#xff0c;首先需要安装 Flask 库。Flask 是一个轻量级的 Web 框架&#xff0c;它使开发者能够快速构建网站或 web 服务。下面是安装 Flask 和创建一个简单的 Flask 应用程序的基本步骤。 安装 Flask 确保您的环境中已经安装了 Pyth…

SpringBoot使用HibernateValidation

概述 Bean Validation源于JSR-303 &#xff0c;而JSR303是 Java EE 6 中的一项子规范。JSR349、JSR380是其升级版&#xff0c;添加了一些新的特性。Oracle公司传统艺能&#xff0c;一流公司定标准&#xff0c;它们只定义了一些校验注解&#xff08;Constraint&#xff09;&…

vue 仿deepseek前端开发一个对话界面

后端&#xff1a;调用deepseek的api&#xff0c;所以返回数据格式和deepseek相同 {"model": "DeepSeek-R1-Distill-Qwen-1.5B", "choices": [{"index": 0, "delta": {"role": "assistant", "cont…