[BJDCTF2020]Mark loves cat 1

2023-12-05 15:08
文章标签 cat bjdctf2020 mark loves

本文主要是介绍[BJDCTF2020]Mark loves cat 1,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

知识点:.git   变量覆盖

目录

  • 扫描
  • 拿源码
  • 变量覆盖
    • 00x0
    • 00x1
    • 00x2

扫描

用御剑或dirsearch扫可以扫到.git/

拿源码

用githack拿源码。
用的时候可能会遇到扫到php文件,但拿不到php源码的情况,这时可以用git init初始化一下,然后不停的试,总有一次会拿到。
我称之为看脸,如果还有其他方法,望各位大佬告之。

变量覆盖

可以在本地实验

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

00x0

这个判断是要get中键值为flag的值强等于$x,且$x要不等于flag,有一点可以确定,就是要在这边输出flag,必须要传handsome=flag,这样传进去后变为$handsome=$flag,然后此时:
$_GET[‘flag’] === handsome && handsome !== ‘flag’
其中后面的条件达成,在传一个flag=handsome就行了。

?handsome=flag&flag=handsome

在这里插入图片描述

00x1

(buuctf为本地设置的flag值)
在这里插入图片描述

当get中flag和post中的flag都不存在,则输出$yds,我们可以传个get为yds=flag,经过变量覆盖则会变为$yds=$flag

?yds=flag

在这里插入图片描述

00x2

这边要post中flag值强等于flag,或者get中flag值强等于flag。
在这里插入图片描述
post中的flag不能变,因为一动就变为$flag=flag,flag值都被我们搞没了。
在这里插入图片描述
而get可以搞,传入flag=flag,会变为$flag=$flag,这样if条件就达成了,最后只要把$is=$flag就行了。

?is=flag&flag=flag

在这里插入图片描述

这篇关于[BJDCTF2020]Mark loves cat 1的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/458063

相关文章

_get_gt_mask、cat_mask、_get_other_mask

import torch# 定义获取标签掩码的函数def _get_gt_mask(logits, target):print("原始 logits:\n", logits)print("目标 target:\n", target)# 将 target 拉平为一维张量target = target.reshape(-1)print("拉平后的 target:\n", target)# 创建一个和

【HDU】4876 ZCC loves cards 暴力

传送门:【HDU】4876 ZCC loves cards 题目分析: 这题无力吐嘈。。。。能想到的优化都用上吧。。。 代码如下: #include <cstdio>#include <cstring>#include <algorithm>using namespace std ;#define REP( i , n ) for ( int i =

【HDU】4873 ZCC Loves Intersection 数学

传送门:【HDU】4873 ZCC Loves Intersection 题目大意:给你一个D维的空间,每个维度都有一条线段平行与该维度属于的轴(如X,Y,Z轴),且线段的端点坐标取值范围0~N-1,保证左端点严格小于右端点(除该维度,其他维度的值两端点均相等)。现在告诉你每条线段的左右端点的坐标都是随机的,0~N-1随机到的概率是完全相等的!现在如果两条线段如果相交于一点,你可以获得一点

【HDU】5197 DZY Loves Orzing 【FFT启发式合并】

传送门:【HDU】5197 DZY Loves Orzing 题目分析: 首先申明,我不会 dp dp方程= =……这个东西给队友找出来了,然后我就是套这个方程做题的Qrz…… 对于这题,因为 n2 n^2个数互不相同,所以每一列都可以单独考虑。设 dpni dp_ni表示长度为 n n的排列,能恰好看见ii个人的方案数,根据队友的发现, dpni dp_ni就等于 |sni| |s_ni|

MARK图像处理与计算机视觉基础,经典以及最近发展

图像处理与计算机视觉的经典书籍 *************************************************************************************************************** 本文章的源作者是   杨晓冬  (个人邮箱:xdyang.ustc@gmail.com)。 原文的链接是 http://www.iask.

Codeforces Round #FF (Div. 2/C)/Codeforces446A_DZY Loves Sequences(DP)

DZY Loves Sequences time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output DZY has a sequence a, consisting of n integers. We'

Codeforces Round #FF (Div. 2/A)/Codeforces447A_DZY Loves Hash(哈希)

A. DZY Loves Hash time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output DZY has a hash table with p buckets, numbered from

D. DZY Loves Modification

D. DZY Loves Modification time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output As we know, DZY loves playing games. One da

pytest.mark简介

pytest.mark 是 pytest 框架中的一个功能,它允许你标记测试函数或类,这样你就可以在运行测试时选择性地执行它们。使用标记,你可以实现以下功能: 条件执行:你可以根据标记来决定哪些测试应该被执行。分组:可以将测试分为不同的组,比如按功能、重要性或速度分组。参数化:可以使用 pytest.mark.parametrize 装饰器来为测试函数提供多个参数集。跳过测试:使用 pytest

Linux命令学习笔记(1)----cat命令

写在前面     只是记录一下自己学过的命令,毕竟这些命令太多,每一个的用法也很多,所以只记录自己学过的 cat命令     介绍:cat用来显示文件中的内容,创建文件,或者连接文件形成新文件     语法:         查看文件:cat[选项] 文件名          新建文件:cat > 新建文件名           连接文件:cat 已有