当前位置: 首页 > news >正文

CTF--file_get_contents

一、原网页:

二、步骤:

1.源码分析:

<?phpextract($_GET); // 将 $_GET 数组中的所有键值对提取为变量if (!empty($ac)) // 只有当 $ac 不为空时,代码才会继续执行
{ $f = trim(file_get_contents($fn)); //trim():去除文件内容两端的空白字符(如空格、换行符等) /file_get_contents():读取由 $fn 指定的文件内容  if ($ac === $f)  // $ac 是否与 $f(文件内容)严格相等(===){echo "<p>This is flag:" ." $flag</p>";  // 如果相等,则输出一个提示信息,其中包含变量 $flag 的值}else{echo "<p>sorry!</p>";  // 如果 $ac 与 $f 不相等,则输出“sorry!”}
}?>

通过get方式传入,$ac和$fn相等才能返回flag

此题的关键点在于file_get_contents()函数,此函数可以通过伪协议进行绕过

2.常见的伪协议:

  • php://

        php://input: 允许访问请求的原始数据(POST 请求)
        php://filter: 允许对文件内容进行流式过滤

  • data://

        允许将数据嵌入到 URL 中,通常用于内联数据( GET请求)

  • zip://
  • bzip2://

        用于访问压缩文件中的内容

3.选取伪协议,构造新的url:

data://

相关文章:

  • 【多线程】线程互斥 互斥量操作 守卫锁 重入与线程安全
  • 大模型工业化元年:GPT-5开启通用AI新纪元,中国技术如何破局?
  • 安宝特案例 | 物流仓储头部企业应用AR+作业流,规范日常安全点检,保障消防安全
  • 简单易懂:从零开始训练CLIP模型的实用指南
  • SiamMask原理详解:从SiamFC到SiamRPN++,再到多任务分支设计
  • 数字IC后端项目典型问题之后端实战项目问题记录(2025.04.24)
  • Spark-Streaming核心编程(2)
  • 利用 SSE 实现文字吐字效果:技术与实践
  • 作业。。。。。。
  • Kubernetes 常用运维命令整理
  • 如何用大模型技术重塑物流供应链
  • 智慧景区国标GB28181视频平台EasyGBS视频融合应用全场景解决方案
  • CentOS 7上安装与配置Memcached及PHP客户端使用教程
  • 2025磐石行动第七周WP
  • 5.3.1 MvvmLight以及CommunityToolkit.Mvvm介绍
  • 【win11 安装WSL2 详解一遍过!!】
  • 什么是Wi-SUN?与其他低功耗广域网技术有何区别?
  • 人工智能与机器学习:二元分类决策树构建指南
  • 【Linux】基本指令(下)
  • 第十五届蓝桥杯 2024 C/C++组 拼正方形
  • 获公示拟任省辖市委副书记的胡军,已赴南阳履新
  • 美联储褐皮书:关税政策背景下,美国部分地区物价上涨、经济前景恶化
  • 导演汪俊:与孙俪默契合作,还原“蛮好的人生”
  • 神舟二十号载人飞行任务新闻发布会将于4月23日上午召开
  • 几百元的工资优势已不能吸引人才流动,江苏多地探讨“抢人”高招
  • 国家疾控局局长沈洪兵:将逐步缩小国内免疫规划与国际差距