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

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.lryc.cn/news/2395965.html

相关文章:

  • OpenShift AI - 启用过时版本的 Notebook 镜像
  • Redis 缓存穿透、缓存击穿、缓存雪崩详解与解决方案
  • sass高阶应用
  • docker docker-ce docker.io
  • DQN和DDQN(进阶版)
  • 【组件】翻牌器效果
  • CentOS 7 环境中部署 LNMP(Linux + Nginx + MySQL 5.7 + PHP)
  • NX811NX816美光颗粒固态NX840NX845
  • 捋捋wireshark
  • c++学习之---模版
  • MyBatis-Flex 全面指南:下一代轻量级持久层框架实战入门
  • 第十六章 EMQX黑名单与连接抖动检测
  • WebSphere(WAS)
  • 新编辑器编写指南--给自己的备忘
  • xPSR
  • 鸿蒙网络数据传输案例实战
  • 【JavaEE】-- 网络原理
  • 1.RV1126-OPENCV 交叉编译
  • PySide6 GUI 学习笔记——常用类及控件使用方法(标签控件QLabel)
  • CSS (mask)实现服装动态换色:创意与技术的完美融合
  • 基于51单片机的音乐盒汽车喇叭调音量proteus仿真
  • 彻底理解Spring三级缓存机制
  • MacOs 安装局域网 gitlab 记录
  • Flutter 与 Android 原生布局组件对照表(完整版)
  • 【产品经理从0到1】自媒体端产品设计
  • 017搜索之深度优先DFS——算法备赛
  • 解决 maven编译项目-Fatal error compiling: 无效的目标发行版: 21 -> [Help 1]
  • Thinkphp6实现websocket
  • web-css
  • 关于 smali:2. 从 Java 到 Smali 的映射