• 攻防世界MISC新手练习


    
    

    0x01 this_is_flag

    对!!!这就是flag

    0x02 ext3

    题目提示是Linux光盘,附件下载下来

    在linux中挂载mount linux /mnt

    找一下flagtrings linux | grep flag,发现在这个路径~root/Desktop/file/O7avZhikgKgbF/flag.txt

    ZmxhZ3tzYWpiY2lienNrampjbmJoc2J2Y2pianN6Y3N6Ymt6an0=

    Base64 Decode flag{sajbcibzskjjcnbhsbvcjbjszcszbkzj}

    0x03 give_you_flag

    附件下载下来是一个gif,Stegsolve打开,使用Analyse中的Frame Browser一张一张看,到50张会有一个残缺二维码

    二维码缺失的部分是它的3个定位点,想办法补全,扫描得到flag{e7d478cf6b915f50ab1277f78502a2c5}

    0x04 pdf

    附件是一个pdf,pdf中文字设置成了透明的直接复制出来就好

    flag{security_through_obscurity}

    0x05 坚持60s

    一个Java的游戏,直接解压,用java反编译工具反编译,在文件中可以找到PlaneGameFrame.class中找到flag,再将大括号中base64解码就行了。

    0x06 如来十三掌

    下载下来时一堆很有佛性汉字,看了看,猜测与佛论禅

    得到一串MzkuM3gvMUAwnzuvn3cgozMlMTuvqzAenJchMUAeqzWenzEmLJW9

    直接Base64 Decode不行,看题目十三掌,

    ROT13解密得到ZmxhZ3tiZHNjamhia3ptbmZyZGhidmNraWpuZHNrdmJramRzYWJ9

    再Base64 Decode 得flag{bdscjhbkzmnfrdhbvckijndskvbkjdsab}

    0x07 gif

    附件解压后,发现一堆黑白照片,一共104张

    白色为0,黑色为1得到

    01100110011011000110000101100111011110110100011001110101010011100101111101100111011010010100011001111101

    二进制转字符串得到fflag{FuN_giF}

    0x08 SimpleRAR

    下载下来是一个rar压缩包,直接解压只有一个flag.txt文件,但是打开只是提示flag is not here

    binwalk分析没有发现,使用winhex打开,发现又secret.png,但是16进制文件头有问题,将7A改成74

    重新解压得到一个空白得png文件使用binwalk分析是一个gif,将后缀修改

    用Stegsolve打开,使用Analyse中的Frame Browser分离出两个图片以png方式保存,再分别用Stegsolve打开,调整通道可以得到如下图片0803

    将两张图片拼接在一起,并补全定位点,扫描得到flag{yanji4n_bu_we1shi}

    0x09 stegano

    附件是一个pdf,打开不能看出什么,binwalk和winhex也没有发现什么,使用firefox的开发者工具pdf.js,控制台输入:document.documentElement.textContent

    将A转为 . B转为-,得到摩斯密码

    -.-. --- -. --. .-. .- - ..- .-.. .- - .. --- -. ... --..-- ..-. .-.. .- --. ---... .---- -. ...- .---- ..... .---- -... .-.. ...-- -- ...-- ..... ..... ....- --. ...--

    翻译后CONGRATULATIONS.FLAG:JNV151BL3M3554G3

    最后答案为FLAG{JNV151BL3M3554G3}

    0x10 掀桌子

    题目给了一串字符串

    c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2

    两个一位,16进制转10进制,然后减去128再转成字符,贴上解密代码

    string = "c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2"
    flag = ''
    for i in range(0,len(string), 2):
       s = "0x" + string[i] + string[i+1]
       flag += chr(int(s, 16) - 128)

    0x11 功夫再高也怕菜刀

    附件是一个wireshark得文件,使用foremost可以分离出一个有密码的压缩包

    使用wireshark打开,分组字节流搜索flag

    再追踪TCP流,追踪到di7个的时候,发现有一个666.jpg,

    前面也刚好有一大串FFD8FF开头的16进制,可以看出是jpg

    写(抄)了一段C#代码,转成jpg

            public static void hexToJPG()
          {
              FileStream fs = new FileStream("E:\study\CTF\test.jpg", FileMode.Create, FileAccess.Write);
              BinaryWriter bw = new BinaryWriter(fs);
              StreamReader sr = new StreamReader("E:\study\CTF\test.txt");
              while (sr.Peek()!=-1)
              {
                  string tempStr = sr.ReadToEnd();
                  int tlenth = tempStr.Length / 2;
                  int pos = 0;
                  string[] str = new string[tlenth];
                  for (int i = 0; i < tlenth; i++)
                  {
                      str[i] = tempStr.Substring(pos, 2);
                      pos = pos + 2;
                      string cc = str[i];
                      byte tempByte = Convert.ToByte(str[i], 16);
                      bw.Write(tempByte);
                  }
              }
              fs.Close();
              bw.Close();
              sr.Close();
          }

    得到密码后,解压缩压缩包得到flag.txt,打开flag{3OpWdJ-JP6FzK-koCMAK-VkfWBq-75Un2z}

    0x12 base64stego

    附件压缩包在win中解压有密码,在linux中,直接binwalk -e flag.zip

    可以直接得到一个stego.txt文件,原压缩包是未=伪加密,txt文件是一堆字符串

    判断是使用的Base64隐写,直接贴上py代码解密,得到flagflag{Base_sixty_four_point_five}

    def get_base64_diff_value(s1, s2):
      base64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
      res = 0
      for i in xrange(len(s1)):
          if s1[i] != s2[i]:
              return abs(base64chars.index(s1[i]) - base64chars.index(s2[i]))
      return res
    def solve_stego():
      with open('stego.txt', 'rb') as f:
          file_lines = f.readlines()
      bin_str = ''
      for line in file_lines:
          steg_line = line.replace(' ', '')
          norm_line = line.replace(' ', '').decode('base64').encode('base64').replace(' ', '')
          diff = get_base64_diff_value(steg_line, norm_line)
          pads_num = steg_line.count('=')
          if diff:
              bin_str += bin(diff)[2:].zfill(pads_num * 2)
          else:
              bin_str += '0' * pads_num * 2
      res_str = ''
      for i in xrange(0, len(bin_str), 8):
          res_str += chr(int(bin_str[i:i+8], 2))
      print res_str
    solve_stego()

    0x13 真是太菜了,今天的我也是个卑微的弟弟呢!

     

  • 相关阅读:
    CART回归树基本原理(具体例子)
    Leetcode 236. 二叉树的最近公共祖先 & 235. 二叉搜索树的最近公共祖先(Python3)
    c和c++的区别
    最小编辑距离python
    判断单链表是否有环,并找出环的入口python
    关键词提取算法-TextRank
    leetcode406 ,131,1091 python
    id3算法python实现
    Relu激活函数的优点
    从 AllocateMessageQueueConsistentHash 看一致性哈希
  • 原文地址:https://www.cnblogs.com/sesefadou/p/11788090.html
Copyright © 2020-2023  润新知