攻防世界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('\n', '')
      norm_line = line.replace('\n', '').decode('base64').encode('base64').replace('\n', '')
      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 真是太菜了,今天的我也是個卑微的弟弟呢!

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM