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

XCTF-web-fileclude

在这里插入图片描述

解析如下

<?php
include("flag.php");            // 包含敏感文件(通常包含CTF挑战的flag)
highlight_file(__FILE__);       // 高亮显示当前PHP文件源代码(方便查看代码逻辑)if(isset($_GET["file1"]) && isset($_GET["file2"])) {  // 检查是否传入两个GET参数$file1 = $_GET["file1"];    // 获取第一个文件名参数$file2 = $_GET["file2"];    // 获取第二个文件名参数if(!empty($file1) && !empty($file2)) {  // 检查参数是否非空if(file_get_contents($file2) === "hello ctf") {  // 检查第二个文件内容是否为"hello ctf"include($file1);  // 如果条件满足,则包含第一个文件}} else {die("NONONO");  // 参数为空时终止执行}
}
?>

思路:
1.file1中传入可以读取flag.php的语句
2.file2中传入字符串"hello ctf"

解题:
1.file1=php://filter/read=convert.base64-encode/resource=flag.php
php://filter是 PHP 的一种输入 / 输出流过滤器,用于对数据流进行处理。
read=convert.base64 - encode表示使用 Base64 编码方式读取数据
resource=flag.php指定了要读取的目标文件为flag.php。
通过这样的设置,在满足特定条件(如代码中对file2的检查等)下,flag.php文件内容会以 Base64 编码形式被获取,以这种编码方式获取内容可用于进一步分析以得到 flag。
2.file2=php://input
php://input 是一个伪协议,它允许访问请求的原始 POST 数据,将其作为一个数据流。

最后我们在请求包末尾添加上:hello ctf

在这里插入图片描述

最后我们将得到的加密字符串进行解码,就得到了flag

在这里插入图片描述

http://www.xdnf.cn/news/9576.html

相关文章:

  • IP地址基础知识
  • opengl - 在本地搭建API的文档说明网站
  • Zsh/Bash Conda设置延迟启动,启动速度优化
  • Vue之使用Vue-cli创建Webpack工程化项目
  • DDS通信中间件——DDS-TSN规范
  • 大模型-高通平台性能测试示例-2
  • Error Swap_arc198c分析与解答
  • docker容器间服务访问的问题
  • 最终章:终焉之塔 · 前端之道
  • WinServer2016安装Docker
  • ResizeObserver 解决 echarts渲染不出来,内容宽度为 0的问题
  • 无法发布到PowerBI?试试拆分它
  • 回头看,FPGA+RK3576方案的功耗性能优势
  • 设计模式-单例模式
  • 理解 C++ 多态:概念、实现方式与实战示例
  • 密钥管理系统在存储加密场景中的深度实践:以TDE透明加密守护文件服务器安全
  • VC++和python从哪一年开始支持split(字符串)非单个字符
  • 【深度学习-pytorch篇】1. Pytorch矩阵操作与DataSet创建
  • LiveGBS国标视频平台收流模式:UDP、TCP被动与TCP主动传输模式之差异剖析
  • 【系统架构设计师】2025年上半年真题论文回忆版: 论多模型数据库及应用(包括解题思路和参考素材)
  • python--=的用法
  • 小白的进阶之路系列之四----人工智能从初步到精通pytorch自定义数据集下
  • 【每天一个知识点】LangChain
  • 针对Python开发的工具推荐及分析,涵盖集成开发环境(IDE)、轻量级工具、在线开发平台、代码管理工具等)
  • 智能手表怎么申请欧盟EN 18031认证
  • 主流 AI IDE 之一的 Windsurf 介绍
  • MySQL 数据迁移Postgresql(openGuass) 之 pg_chameleon
  • BGP实验报告
  • SQLiteStudio - 免费开源、轻量高效,跨平台的 SQLite 数据库管理工具,代替 Navicat for SQLite
  • 【已解决】windows gitbash 出现CondaError: Run ‘conda init‘ before ‘conda activate‘