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

7.攻防世界fileclude

题目描述

进入题目页面如下

看到题目提示应该为文件包含漏洞

解释上述代码

// 输出提示信息:错误的方式!
WRONG WAY! 
<?php
// 包含名为 "flag.php" 的文件,通常这个文件里可能包含重要的敏感信息,如 flag
include("flag.php");

// 以语法高亮的形式显示当前 PHP 文件的源代码,便于开发者查看代码结构和内容,也可用于调试
highlight_file(__FILE__);

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

    // 检查 $file1 和 $file2 变量的值是否不为空(既不是空字符串,也不是 null 等无意义的值)
    if(!empty($file1) && !empty($file2))
    {
        // 读取 $file2 所指定文件的内容,并检查其内容是否严格等于字符串 "hello ctf"
        if(file_get_contents($file2) === "hello ctf")
        {
            // 如果 $file2 文件内容是 "hello ctf",则包含 $file1 所指定的文件
            // 也就是将 $file1 文件的代码插入到当前位置并执行
            include($file1);
        }
    }
    else
        // 如果 $file1 或 $file2 为空,则终止脚本执行,并输出 "NONONO"
        die("NONONO");
}

访问flag.php

显示错误

看源代码应在file1中传入读取flag.php语句、在file2中传入hello ctf

使用伪协议:如果目标服务器支持,也可以使用 php://input 或 data:// 伪协议来模拟这个文件。例如,使用 data:// 伪协议

当服务器处理这个请求时,会检查 file2 的内容是否为 "hello ctf",由于使用了 data:// 伪协议,这个条件会满足。然后,服务器会包含并执行 file1 文件,即 flag.php,从而输出 flag 的内容。

用POST方式传参

?file1=php://filter/read=convert.base64-encode/resource=flag.php&file2=php://input

利用burp suite抓包按要求修改请求

得到的编码看着像base64编码

可以利用这个在线工具解码base64解码 base64编码 在线base64解码/编码工具 iP138在线工具

最终得到flag


http://www.kler.cn/a/529109.html

相关文章:

  • 第5章 公共事件
  • Android13源码下载和编译过程详解
  • 如何从客观角度批判性阅读分析博客
  • FFmpeg(7.1版本)编译:Ubuntu18.04交叉编译到ARM
  • Redis篇 Redis如何清理过期的key以及对应的解决方法
  • 随机矩阵投影长度保持引理及其证明
  • Qt Creator 中使用 vcpkg
  • Doki Doki Mods Maker小指南
  • 网络原理(3)—— 传输层详解
  • RK3568连接wifi(connmanctl工具)
  • 使用 Docker 部署 pSQL 服务器 的教程
  • 如何为用户设置密码
  • 爬取豆瓣书籍数据
  • 本地部署DeepSeek教程(Mac版本)
  • 一个数如果恰好等于他的因子之和,这是就成为“完数“,例如6=1+2+3.编程找出1000以内的所有完数
  • 2025.2.1(迭代器,auto,for遍历)
  • PID算法的数学实现和参数确定方法
  • 新集成,Sui 的 Phantom 时代正式开启!
  • Java小白入门教程:数组(一维数组)
  • kamailio-ACC_RADIUS模块详解,附加AAA协议
  • 一文读懂Python之random模块(31)
  • C++:虚函数与多态性习题2
  • 洛谷 P1734 最大约数和 C语言
  • 讯飞绘镜(ai生成视频)技术浅析(三):自然语言处理(NLP)
  • 手撕Vision Transformer -- Day2 -- Dataset
  • 02数组+字符串+滑动窗口+前缀和与差分+双指针(D2_字符串(D2_刷题练习))