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打开,调整通道可以得到如下图片

将两张图片拼接在一起,并补全定位点,扫描得到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 真是太菜了,今天的我也是个卑微的弟弟呢!

攻防世界MISC新手练习的更多相关文章

  1. 攻防世界 Misc 新手练习区 stegano CONFidence-DS-CTF-Teaser Writeup

    攻防世界 Misc 新手练习区 stegano CONFidence-DS-CTF-Teaser Writeup 题目介绍 题目考点 隐写术 摩斯密码 Writeup 下载附件是PDF文件打开,研究一 ...

  2. 攻防世界 Misc 新手练习区 ext3 bugku Writeup

    攻防世界 Misc 新手练习区 ext3 bugku Writeup 题目介绍 题目考点 WinHex工具的使用 linux磁盘挂载mount命令 Writeup 下载附件拖进winhex分析一下,查 ...

  3. 攻防世界 Misc 新手练习区 gif Writeup

    攻防世界 Misc 新手练习区 gif Writeup 题目介绍 题目考点 仔细联想 字符转换 Writeup 下载附件并打开 104张黑白图 发现是一堆黑色和白色的图片,按某种规律排列,猜想flag ...

  4. 攻防世界 Misc 新手练习区 坚持60s Writeup

    攻防世界 Misc 新手练习区 坚持60s Writeup 题目介绍 题目考点 java反编译 jd-gui 的使用 Writeup 下载附件并打开 kali执行命令 java -jar 9dc125 ...

  5. 攻防世界 Misc 新手练习区 give_you_flag Writeup

    攻防世界 Misc 新手练习区 give_you_flag Writeup 题目介绍 题目考点 gif图片分离 细心的P图 二维码解码 Writeup 下载附件打开,发现是一张gif图片,打开看了一下 ...

  6. 攻防世界 Misc 新手练习区 如来十三掌 Writeup

    攻防世界 Misc 新手练习区 如来十三掌 Writeup 题目介绍 题目考点 佛曰加密.base64.Rot13等加密方法的了解 Writeup 下载并打开附件 联想到佛曰加密,复制内容到 佛曰加密 ...

  7. 攻防世界——Misc新手练习区解题总结<3>(9-10题)

    第九题SimpleRAR: 下载附件后得到一个压缩包打开后得到如下提示 文件头损坏,让我们打开winhex看一下 7a为子块而文件头为74,这里将7a改为74(这里我也不是很清楚,详细大家可以自行去查 ...

  8. 攻防世界——Misc新手练习区解题总结<2>(5-8题)

    第五题gif: 下载附件后,解压得到这样一个文件 几经寻找无果后,发现是不是可以将gif中的黑白图片看做二进制的数字,进而进行解密 最后用二进制转文本得到flag 第六题掀桌子: 看起来是16进制的密 ...

  9. 攻防世界——Misc新手练习区解题总结<1>(1-4题)

    第一题this_if_flag: 第一题就不多说了,题目上就给出了flag复制粘贴就可以了 第二题pdf: 下载附件后,得到如下界面 Ctrl+a全选文字,复制出来看看是什么,粘贴后恰好得到flag ...

随机推荐

  1. Vue-main.js中的一些配置

    import Vue from 'vue' import App from './App.vue' import router from './router' import store from '. ...

  2. PL/SQL老是自动断开问题处理

    问题背景:情况是这样的,很多开发同事的plsql上班时间开着8个小时,有时候他们出去抽烟后或者中午吃完饭,回来在plsql上面执行就报错无响应,然后卡住了半天动弹不了,非得重新登录plsql才生效,我 ...

  3. ESLint 报错 import/no-unresolved

    马的,就这个规则百度了大半天终于找到可以用的: 不得不说百度真的辣鸡 还是翻墙去谷歌找到了解决方法 解决方法是:在 .eslintrc 中设置 "rules": { "i ...

  4. Java8-Optional-No.02

    import java.util.Optional; import java.util.function.Supplier; public class Optional2 { static class ...

  5. C语言学习系列(六)存储类

    一.C存储类 存储类定义C程序中变量/函数的范围(可见性)和生命周期.这些说明符放置在他们所修饰的类型之前.for example:auto.register.static.extern. (一).a ...

  6. Django:将模型注册到后台的几种方法

    from django.contrib import admin from .models import * #将模型注册到后台: #方法一:将模型直接注册到后台 # admin.site.regis ...

  7. jQuery.proxy(function,context)

    jQuery.proxy(function,context) 概述 jQuery 1.4 新增.返回一个新函数,并且这个函数始终保持了特定的作用域.大理石平台检定规程 当有事件处理函数要附加到元素上, ...

  8. .net常用属性

    1.   在ASP.NET中专用属性:               获取服务器电脑名:Page.Server.ManchineName               获取用户信息:Page.User   ...

  9. Luogu4191 [CTSC2010]性能优化【多项式,循环卷积】

    题目描述:设$A,B$为$n-1$次多项式,求$A*B^C$在系数模$n+1$,长度为$n$的循环卷积. 数据范围:$n\leq 5*10^5,C\leq 10^9$,且$n$的质因子不超过7,$n+ ...

  10. vue 重置data中表单form的值 重置变量

    export default { data() { return { form:{ name:"张三", age:13, sex:1, address:"" } ...