[HelloCTF]PHPinclude-labs超详细WP-Level 1-FILE协议

devtools/2025/3/25 16:25:27/

源码分析

  • <?php include("get_flag.php");isset($_GET['wrappers']) ? include("file://".$_GET['wrappers']) : '';highlight_file(__FILE__);
    ?>
    
  • 第一句 include("get_flag.php");, 使代码包含了 get_flag.php 的内容

    • 大概是生成 Flag 之类的代码
  • 第二句与上一关差不多, 通过三目运算的方式, 简写了一个判断语句

    • 检测是否 GET 传入 wrapper 参数, 如果有就传给 include() 参数执行

      • 不过这里对 wrapper 参数做了点修改, 才交给 include()

      • "file://".$_GET['wrappers']

      • 增加了 file协议标志

  • 最后一句就是显示源码

解题分析

  • 首先, 题目开头告诉当前文件路径 /var/www/html

    • 这个在现实场景中可以根据根据一般情况部署的目录去猜测
  • 并且, 题目环境中, 关闭了allow_url_fopen=Off allow_url_include=Off, 导致了不能使用上一关的远程文件包含

  • 再者, include() 被限制使用了 file协议, 故这里只能尝试 file协议 来达到文件包含

  • file:// 协议

    • include("filename") 
      <=> 
      include("file://" . __DIR__ . "/filename"); 
      
    • 不过这里只能使用绝对路径

  • 然后探姬在题目说提到了 当前目录下有 phpinfo.txt flag.php(包含存储flag的变量), 在根目录下有 flag 文件(包含flag)

尝试包含文件

  • 包含 phpinfo.txt

    • 靶机地址/?wrappers=/var/www/html/phpinfo.txt
      
  • 包含 flag.php

    • 因为这里并没有输出flag变量 的代码, 所以包含了也没有变化

    • 其实打开靶机源文件会发现, flag.php 其实空的

解题步骤

  • 跟上述方法一样, 改为包含 根目录下的 flag 就可以了

  • 靶机地址/?wrappers=/flag
    

http://www.ppmy.cn/devtools/169037.html

相关文章

昆仑万维开源R1V:38B参数多模态推理模型开启AI新纪元

在AI技术竞争白热化的今天&#xff0c;中国公司昆仑万维以一场震撼的开源行动&#xff0c;向全球展示了其在多模态推理领域的突破。R1V&#xff08;Skywork R1V&#xff09;——全球首个工业级开源多模态推理模型&#xff0c;以380亿参数规模直逼DeepSeek-R1的推理能力&#xf…

k8s服务中userspace,iptables,和ipvs的比较

在 Kubernetes 中&#xff0c;kube-proxy 是负责实现服务负载均衡的组件。它支持三种代理模式&#xff1a;userspace、iptables 和 ipvs。这三种模式在性能、功能和复杂性上有所不同。以下是它们的详细比较&#xff1a; 1. Userspace 模式 Userspace 是 Kubernetes 最早支持的…

Tailwind CSS 学习笔记(三)

TailWind CSS 中的七大核心概念之一 —— 功能优先 (我个人的理解,Tailwind CSS 中预定义类基本以功能命令,看类名基本上可以知道是干什么用的。) 你还在为写CSS 时,冥思苦想编写类名而烦恼吗? 你还在为CSS 代码编写太多,文件过大而烦恼吗? 你还在为修改CSS 样式时,“…

自然语言处理入门

第一章 自然语言处理入门 1 什么是自然语言处理 【什么是人工智能&#xff0c;分别对应哪几个领域】 AI是模仿甚至超越人的某项机能&#xff0c;NLP、CV、ASR NLP是机器理解并生成人类语言2 自然语言处理的发展简史 1950 -- 图灵提出“机器能思考吗”&#xff0c;划时代性的…

深入解析 .NET Core 垃圾回收(GC):概念、工作原理与优化策略

引言 在软件开发中&#xff0c;内存管理一直是一个至关重要的问题。垃圾回收&#xff08;GC&#xff0c;Garbage Collection&#xff09; 是现代编程语言&#xff08;包括 .NET Core&#xff09;中非常重要的一个特性。它自动管理内存&#xff0c;减少了开发者手动管理内存分配…

CentOS 7.9 安装 Python 3.10 详细步骤及常见问题解决

一、环境准备与依赖安装 更新系统与开发工具 sudo yum update -y sudo yum groupinstall "Development Tools" -y sudo yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel \ readline-devel tk-devel libffi-devel gdbm-devel db4-de…

openmv/openart学习笔记

摄像头初始化完整 #导入常用库 import sensor import time import math import image#重置摄像头&#xff0c;通常在开始时调用 sensor.reset() #设置摄像头的像素格式。format取值&#xff1a;sensor.RGB565&#xff0c;sensor.GRAYSCALE&#xff0c;sensor.YUV422 sensor.se…

代码社区开源协议

开源协议是一种法律文件&#xff0c;用于规定开源软件的使用、修改和分发条件。它平衡了开发者和使用者的权益&#xff0c;同时推动开放协作与技术创新。以下是常见的开源协议及其特点和适用场景&#xff1a; 常见开源协议列表及介绍 1. MIT License 特点&#xff1a;非常宽…