河南省第二届“金盾信安杯”网络安全大赛 WriteUp Crypto+Misc

2020年 河南省第二届“金盾信安杯”网络安全大赛 Write UP Crypto+Misc

作者:ch4nge
时间:2020.12.20

题目资源下载
sorry 下载积分忘记改为0了,,,选择已经修改了

https://download.csdn.net/download/qq_25094483/13743845

前言


今天的比赛,趁着热乎,写一篇writeup记录一下做出来的题目,比赛是针对萌新的,很友好,我只做了Crypto和Misc部分,幸运的是把这两类题目做完了,在这里分享一下思路,希望可以帮助CTF入门的小伙伴~

注意:一些编解码网站直接在超链接里面,蓝色字体就是。

比赛体验感一般,上午9点刚开始比赛,平台的比赛入口就没了~最后离结束十几分钟的时候排名也是疯狂掉哇QAQ

文章目录

  • 2020年 河南省第二届“金盾信安杯”网络安全大赛 Write UP Crypto+Misc
  • 前言
  • Crypto
      • base
          • 1、下载文件,解压得到base文件,打开发现是Data URI scheme数据,也就是一个[png图片的base64格式](http://www.letuknowit.com/archives/76/)
          • 2、将数据复制到浏览器打开,保存图片
          • 3、图片是个二维码,[在线解码](https://cli.im/deqr)一下
          • 4、根据题目名字base,这个编码应该是base类型的编码结果,使用[basecrack(base全家桶解密)工具](https://github.com/mufeedvh/basecrack)
          • 5、得到答案
          • 6、附:basecrack使用方法
      • 不一样的凯撒
          • 1、下载文件,打开是一串字符
          • 2、题目提示凯撒,按照凯撒密码的原理,对其进行解密
          • 3、对字符移动位数查找规律
          • 4、使用python3编写脚本进行解密.
          • 5、运行得到答案
      • 今天是个好日子
          • 1、打开文件是一个二维码图片,解码得到一串unicode /u编码
          • 2、[在线解码](https://tool.oschina.net/encode?type=3)得到
          • 3、将得到的密文使用[base64解码](https://www.qqxiuzi.cn/bianma/base64.htm)得到
          • 4、使用[在线AES解密](https://www.sojson.com/encrypt.html),根据题目今天是个好日子得到密钥为 20201220
  • Misc
      • 注意数字
          • 1、得到一个压缩包,解压得到一张图片`此图没有提示.jpg`
          • 2、看一下ASCII码,发现文件尾部有压缩包
          • 3、使用binwalk提取
          • 4、得到BC5D.zip
          • 5、查看ASCII码发现后面是奇数9,确定是伪加密
          • 6、伪加密处理
            • 方法1:将9(奇数)改为0,保存,再解压直接成功,得到1.txt
            • 方法2:使用工具ZipCenOp.jar
          • 7、 这尾部熟悉的==标记,让我立马想到了base64编码。
          • 8、得到
          • 9、没有相关密钥信息,那就是单表替换密码了
          • 10、结果
      • 小火龙冲啊
          • 1、得到压缩包,解压得到图片,放进hxD看ASCII,末尾发现线索
          • 2、既然提示pass,那就是图片里隐藏了压缩包,需要解密的意思了~直接改后缀为zip,输入密码111111进行解压,得到flag.txt
      • 五瓶药水
          • 1、解压文件得到几个压缩包
          • 2、没有任何密码提示,后面五个颜色命名的压缩包占的空间很小,解压软件打开看到原大小只有4字节,那就是CRC碰撞了
          • 3、上脚本爆破
          • 4、得到
          • 5、使用base64解码得到5个字符串,分别为
          • 6、得到flag.txt,又是一个图片
          • 7、复制到浏览器打开,恭喜你获得药水哥一个
          • 8、查看ASCII,尾部有flag
      • 我和十六有个约定
          • 1、下载文件解压得到图片和压缩包![023](https://img-blog.csdnimg.cn/20201220214701208.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI1MDk0NDgz,size_16,color_FFFFFF,t_70)
          • 2、直接看图片的ASCII
          • 3、数据是[16进制,在线转一下ASCII](http://www.bejson.com/convert/ox2str/)
          • 4、使用密码解压压缩包得到flag.txt
          • 5、事情既然这么明显了,那就上脚本吧
          • 6、运行得到正确顺序的目标文件
          • 7、将内容复制到hxD里面保存为flag.jpg文件,得到半张二维码
          • 8、在splice.txt文件中是一个图片的base64,复制到浏览器打开并保存,得到一个二维码的定位符
          • 9、使用画图工具,将它们合体
      • One_piece
          • 1、下载得到压缩包`4位数字.zip`,使用`ziperello`工具进行爆破得到密码`9156`
          • 2、解压得到两个文件
          • 3、先看一下txt里面的描述
          • 4、先解一下下面的[社会核心价值观编码](https://loli-rbq.top/socialist-core/test.html)得到
          • 5、得到的字符串是[Brainfuck编码](https://www.splitbrain.org/services/ook),再次解密
          • 6、得到的这个密文应该就是需要密钥解密了~
          • 7、需要满足四个if语句,可以精准得到四个数字,分别为98 97 98 121,这四个数字对应ASCII编码的baby,使用多表替换的加密方法,常见的就是维吉尼亚了,[在线解密](https://planetcalc.com/2468/)


Crypto

base

题目类型:编码
解题步骤:

1、下载文件,解压得到base文件,打开发现是Data URI scheme数据,也就是一个png图片的base64格式
data:image/png;base64,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
2、将数据复制到浏览器打开,保存图片

河南省第二届“金盾信安杯”网络安全大赛 WriteUp Crypto+Misc_第1张图片

3、图片是个二维码,在线解码一下

得到F#S

4、根据题目名字base,这个编码应该是base类型的编码结果,使用basecrack(base全家桶解密)工具

命令:

python basecrack.py -b "F#S

河南省第二届“金盾信安杯”网络安全大赛 WriteUp Crypto+Misc_第2张图片

5、得到答案

Decoding as Base92: flag{you_very_good!!}
编码方式 Base92


6、附:basecrack使用方法
$ git clone https://github.com/mufeedvh/basecrack.git
$ cd basecrack
$ pip install -r requirements.txt
$ python basecrack.py -h
$ python basecrack.py -b "F#S

不一样的凯撒

题目类型:编码
解题步骤:

1、下载文件,打开是一串字符
bhag{asb_zsz_vtsz_aszw}
2、题目提示凯撒,按照凯撒密码的原理,对其进行解密

得到一串接近答案的字符串
flek{ewf_dwd_zxwd_ewda},但是显然这不是正确答案,与密文字符串对比发现此字符前两个与密文字符串第3 4位字符加一起是flag
bhag{asb_zsz_vtsz_aszw}
flek{ewf_dwd_zxwd_ewda}

3、对字符移动位数查找规律

发现在密文字符的十进制为偶数的时候才进行移4位操作,奇数的时候不变
003
bh分别为98 104,加4之后是102 108,ag是奇数 103 123,不变,结果是flag

>>> chr(102)
'f'
>>> chr(108)
'l'
4、使用python3编写脚本进行解密.

两个if判断用来区分大小写操作

# -*- coding: utf-8 -*-
c = 'bhag{asb_zsz_vtsz_aszw}'
yy = 4#移位4
d=''

for i in range(len(c)):
    if c[i]>='a' and c[i]<='z' and ord(c[i])%2 == 0:
        d=d+chr((ord(c[i])+yy-97)%26+97)
    elif c[i]>='A' and c[i]<='Z' and ord(c[i])%2 == 0:
        d=d+chr((ord(c[i])+yy-65)%26+65)
    else:
        d=d+c[i]
print(d)
d=''
5、运行得到答案
flag{asf_dsd_zxsd_asdw}

第一次看到这么不可读的flag,你敢信这是答案


今天是个好日子

题目类型:编码
解题步骤:

1、打开文件是一个二维码图片,解码得到一串unicode /u编码

二维码解码网站

\u0056\u0054\u004a\u0047\u0063\u0032\u0052\u0048\u0056\u006d\u0074\u0059\u004d\u0053\u0074\u006c\u0061\u0046\u0068\u006b\u0052\u0048\u0056\u0042\u004d\u0030\u0056\u0044\u004e\u0031\u0052\u006a\u0063\u006a\u0056\u0069\u0054\u0030\u0068\u004f\u0061\u0048\u0070\u0069\u0052\u0056\u0042\u0050\u0065\u006a\u0055\u0031\u0052\u0032\u0052\u0035\u004e\u0056\u004e\u0030\u0057\u006c\u0055\u0033\u0055\u006b\u0052\u0036\u0057\u0054\u0064\u0049\u005a\u006e\u0049\u0031\u0054\u0054\u0046\u004b\u0062\u0030\u0035\u0030\u0065\u0067\u006f\u0067
2、在线解码得到
VTJGc2RHVmtYMStlaFhkRHVBM0VDN1RjcjViT0hOaHpiRVBPejU1R2R5NVN0WlU3UkR6WTdIZnI1TTFKb050egog

河南省第二届“金盾信安杯”网络安全大赛 WriteUp Crypto+Misc_第3张图片

3、将得到的密文使用base64解码得到
U2FsdGVkX1+ehXdDuA3EC7Tcr5bOHNhzbEPOz55Gdy5StZU7RDzY7Hfr5M1JoNtz
4、使用在线AES解密,根据题目今天是个好日子得到密钥为 20201220

得到flag{2020jdbctfdasai}

河南省第二届“金盾信安杯”网络安全大赛 WriteUp Crypto+Misc_第4张图片

Misc

注意数字

题目类型:zip伪加密、base64编码、仿射密码
解题步骤:

1、得到一个压缩包,解压得到一张图片此图没有提示.jpg

河南省第二届“金盾信安杯”网络安全大赛 WriteUp Crypto+Misc_第5张图片

2、看一下ASCII码,发现文件尾部有压缩包

河南省第二届“金盾信安杯”网络安全大赛 WriteUp Crypto+Misc_第6张图片

3、使用binwalk提取

命令

binwalk -e m1.jpg

008

4、得到BC5D.zip

这个压缩包导入工具准备爆破的时候瞬间提示没有找到密码,那就是没有密码了

5、查看ASCII码发现后面是奇数9,确定是伪加密

河南省第二届“金盾信安杯”网络安全大赛 WriteUp Crypto+Misc_第7张图片

6、伪加密处理
方法1:将9(奇数)改为0,保存,再解压直接成功,得到1.txt
方法2:使用工具ZipCenOp.jar

工具网上很好找,这里不添加了
命令:

java -jar ZipCenOp.jar r BC5D.zip
success 1 flag(s) found

工具修改的是原文件,没有生成新文件,直接解压得到1.txt


文件内容太长了,csdn粘贴不全,文章首部会附上题目文件

河南省第二届“金盾信安杯”网络安全大赛 WriteUp Crypto+Misc_第8张图片

7、 这尾部熟悉的==标记,让我立马想到了base64编码。

解码一下(注意base64编码在b’’里面),解码一次后发现结果还是base64编码。。。写一个脚本循环解码

import base64
b=''
while 1:
	b = base64.b64decode(b)
	b = str(b)[2:-1]
	print(b)
8、得到
yqjb{lha-drwohjw-ekf}

河南省第二届“金盾信安杯”网络安全大赛 WriteUp Crypto+Misc_第9张图片

9、没有相关密钥信息,那就是单表替换密码了

凯撒、简单替换密码、移位密码、仿射密码~就那几种,挨个试呗,得到解密方式是仿射密码
仿射密码破解 python3脚本

脚本在这里
https://blog.csdn.net/qq_25094483/article/details/111463214
010
河南省第二届“金盾信安杯”网络安全大赛 WriteUp Crypto+Misc_第10张图片

10、结果
flag{six-yuntian-hjq}

小火龙冲啊

题目类型:图片数据隐藏
解题步骤:

1、得到压缩包,解压得到图片,放进hxD看ASCII,末尾发现线索
pass:111111

河南省第二届“金盾信安杯”网络安全大赛 WriteUp Crypto+Misc_第11张图片

2、既然提示pass,那就是图片里隐藏了压缩包,需要解密的意思了~直接改后缀为zip,输入密码111111进行解压,得到flag.txt
flag{gogogo_xiaohuolong}

五瓶药水

题目类型:CRC32碰撞
解题步骤:

1、解压文件得到几个压缩包

河南省第二届“金盾信安杯”网络安全大赛 WriteUp Crypto+Misc_第12张图片

2、没有任何密码提示,后面五个颜色命名的压缩包占的空间很小,解压软件打开看到原大小只有4字节,那就是CRC碰撞了

014
015
016
017
018
五个crc32值为

0x555FA1A2, 0xE5C67F46, 0x6E957E45, 0x76D6A31A, 0x2B042586
3、上脚本爆破

环境python2

# -*- coding:utf-8 -*-
import datetime
import binascii

txt=''
def crack():
	crcs = set([0x555FA1A2, 0xE5C67F46, 0x6E957E45, 0x76D6A31A, 0x2B042586])
	for a in range(32,127):
		for b in range(32,127):
			for c in range(32,127):
				for d in range(32,127):
							txt = chr(a)+chr(b)+chr(c)+chr(d)
							crc = binascii.crc32(txt)
							if (crc & 0xFFFFFFFF) in crcs:
								print txt

if __name__ == "__main__":
	crack()
4、得到

019

5、使用base64解码得到5个字符串,分别为
Mw==
YjEy
Z2Vu
aW9u
cG90

3		b12		gen		ion		pot

压缩包密码就是potiongenb123

6、得到flag.txt,又是一个图片

河南省第二届“金盾信安杯”网络安全大赛 WriteUp Crypto+Misc_第13张图片

7、复制到浏览器打开,恭喜你获得药水哥一个

河南省第二届“金盾信安杯”网络安全大赛 WriteUp Crypto+Misc_第14张图片

8、查看ASCII,尾部有flag

河南省第二届“金盾信安杯”网络安全大赛 WriteUp Crypto+Misc_第15张图片

flag{I_always_take_5_potion_when_i_g0_0ut}

我和十六有个约定

题目类型:编程、图片修剪
解题步骤:

1、下载文件解压得到图片和压缩包河南省第二届“金盾信安杯”网络安全大赛 WriteUp Crypto+Misc_第16张图片
2、直接看图片的ASCII

末尾看到信息

keyis7034735377307244

河南省第二届“金盾信安杯”网络安全大赛 WriteUp Crypto+Misc_第17张图片

3、数据是16进制,在线转一下ASCII

得到p4sSw0rD

4、使用密码解压压缩包得到flag.txt

在第一行尾部看到了jpg图片的文件头FF D8 FF E0

在文件末尾看到了jpg的文件尾部FF D9

河南省第二届“金盾信安杯”网络安全大赛 WriteUp Crypto+Misc_第18张图片
河南省第二届“金盾信安杯”网络安全大赛 WriteUp Crypto+Misc_第19张图片

5、事情既然这么明显了,那就上脚本吧

把每一行的内容进行逆序排列一下就可以得到正确顺序的jpg文件的16进制了
python3环境

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import re

re = []
my_open = open("./dx.txt", 'a')#以追加的方式进行写文件
f = open('./flag.txt'); #打开文件,进行读取内容

for line in f.readlines():
	re = line.split(' ')
	re=re[:-1]
	re=re[::-1]
	my_open.write(" ".join(re)+'\n')
	
my_open.close()
6、运行得到正确顺序的目标文件

河南省第二届“金盾信安杯”网络安全大赛 WriteUp Crypto+Misc_第20张图片

7、将内容复制到hxD里面保存为flag.jpg文件,得到半张二维码

河南省第二届“金盾信安杯”网络安全大赛 WriteUp Crypto+Misc_第21张图片

8、在splice.txt文件中是一个图片的base64,复制到浏览器打开并保存,得到一个二维码的定位符

029

9、使用画图工具,将它们合体

将这个方块补在上面的缺角二维码上面,得到
河南省第二届“金盾信安杯”网络安全大赛 WriteUp Crypto+Misc_第22张图片
扫码得到flag

flag{you_get_1t}

One_piece

题目类型:编码、zip密码爆破、c语言判断
解题步骤:

1、下载得到压缩包4位数字.zip,使用ziperello工具进行爆破得到密码9156

河南省第二届“金盾信安杯”网络安全大赛 WriteUp Crypto+Misc_第23张图片

2、解压得到两个文件

032

3、先看一下txt里面的描述
草帽一伙历经千辛万苦,终于找到了one piece,但是最终的宝箱面前却有一串密码(似乎还缺少一把钥匙),众人冥思苦想找不到答案,只能求助于你,你能帮助他们解开吗?

密码如下:

文明诚信民主文明友善平等文明友善平等文明诚信民主文明友善平等文明诚信民主文明诚信民主文明诚信民主平等友善平等和谐诚信自由和谐诚信自由文明友善平等文明诚信民主和谐友善爱国文明友善平等文明友善平等文明诚信民主文明诚信民主和谐友善爱国文明诚信民主文明友善平等文明友善平等文明友善平等文明友善平等文明友善平等和谐友善爱国文明诚信民主文明诚信民主文明诚信民主文明诚信民主文明友善平等文明友善平等文明诚信民主文明诚信民主和谐友善爱国文明友善平等文明友善平等文明友善平等文明友善平等文明友善平等文明友善平等文明诚信民主文明友善平等文明友善平等文明诚信民主和谐诚信自由文明诚信民主文明诚信民主文明友善平等文明诚信民主文明友善平等文明友善平等文明友善平等文明诚信民主文明友善平等文明友善平等文明友善平等文明诚信民主和谐友善爱国文明友善平等文明诚信民主文明友善平等文明诚信民主文明诚信民主文明诚信民主文明诚信民主文明诚信民主文明诚信民主文明诚信民主文明友善平等文明友善平等文明诚信民主文明友善平等和谐友善爱国文明友善平等文明友善平等文明诚信民主文明诚信民主文明友善平等文明诚信民主文明友善平等文明诚信民主文明友善平等文明诚信民主文明友善平等文明友善平等文明友善平等文明诚信民主文明诚信民主文明诚信民主和谐友善爱国文明友善平等文明诚信民主文明诚信民主文明诚信民主文明诚信民主文明友善平等文明友善平等文明诚信民主文明诚信民主文明诚信民主文明友善平等文明诚信民主文明诚信民主文明诚信民主文明友善平等文明友善平等文明友善平等文明友善平等和谐友善爱国文明友善平等文明诚信民主文明友善平等文明友善平等文明友善平等文明友善平等文明诚信民主文明诚信民主文明友善平等文明友善平等文明友善平等文明友善平等文明友善平等文明诚信民主文明友善平等文明友善平等文明友善平等文明诚信民主文明友善平等文明友善平等和谐诚信自由文明诚信民主文明诚信民主文明友善平等文明诚信民主文明诚信民主文明友善平等文明诚信民主文明诚信民主文明诚信民主文明友善平等文明友善平等文明诚信民主文明诚信民主文明友善平等文明友善平等文明友善平等文明友善平等文明诚信民主文明友善平等文明诚信民主文明友善平等文明友善平等和谐友善爱国文明诚信民主文明友善平等文明友善平等文明友善平等文明诚信民主文明友善平等文明友善平等文明诚信民主文明诚信民主文明诚信民主文明友善平等文明友善平等文明友善平等文明友善平等文明诚信民主文明友善平等文明诚信民主文明友善平等文明诚信民主文明友善平等文明诚信民主文明友善平等文明友善平等文明友善平等和谐友善爱国文明诚信民主文明友善平等文明诚信民主文明诚信民主文明诚信民主文明友善平等文明友善平等文明友善平等文明友善平等文明诚信民主文明友善平等文明诚信民主文明诚信民主文明诚信民主文明友善平等文明诚信民主文明友善平等文明友善平等文明友善平等文明诚信民主文明诚信民主文明友善平等文明友善平等文明诚信民主文明诚信民主文明友善平等和谐诚信自由文明友善平等文明友善平等文明友善平等文明诚信民主文明友善平等文明诚信民主文明友善平等文明友善平等文明友善平等文明诚信民主文明诚信民主文明诚信民主文明友善平等文明友善平等文明诚信民主文明友善平等文明友善平等文明诚信民主文明友善平等文明诚信民主文明诚信民主文明友善平等文明友善平等文明友善平等文明诚信民主文明友善平等文明友善平等文明友善平等和谐诚信自由文明友善平等文明友善平等文明诚信民主文明友善平等文明友善平等文明诚信民主文明诚信民主文明友善平等文明友善平等文明诚信民主文明诚信民主文明诚信民主文明诚信民主文明诚信民主文明友善平等文明友善平等文明友善平等文明诚信民主文明诚信民主文明诚信民主文明友善平等文明友善平等文明友善平等文明友善平等文明友善平等文明诚信民主文明友善平等文明友善平等文明友善平等文明诚信民主和谐诚信文明和谐友善公正和谐友善公正和谐友善公正和谐诚信文明和谐友善公正和谐诚信文明和谐友善公正和谐诚信文明和谐诚信文明和谐诚信文明和谐友善公正和谐诚信文明和谐诚信文明和谐诚信文明和谐诚信文明文明友善法治平等友善法治和谐诚信自由和谐友善爱国和谐诚信自由和谐友善爱国和谐诚信自由和谐诚信自由和谐诚信自由文明诚信民主文明诚信民主文明诚信民主文明诚信民主文明诚信民主文明诚信民主文明友善平等文明诚信自由和谐友善爱国文明友善法治文明友善法治文明友善法治文明诚信和谐文明友善爱国和谐友善公正文明诚信和谐文明友善法治文明友善法治文明友善法治文明诚信和谐文明友善爱国文明友善平等文明友善平等文明友善平等文明诚信自由和谐友善爱国和谐诚信自由文明友善法治文明诚信和谐文明诚信和谐文明友善法治文明诚信和谐文明友善爱国和谐诚信文明文明友善平等文明友善平等文明诚信民主文明友善平等文明友善爱国文明友善法治文明友善法治文明诚信自由和谐诚信文明文明友善平等文明诚信自由文明诚信和谐文明诚信和谐文明友善法治文明诚信和谐文明友善法治文明友善法治文明诚信和谐文明诚信自由和谐诚信自由文明诚信自由文明诚信和谐文明诚信和谐文明友善法治文明诚信和谐文明友善爱国文明诚信和谐文明诚信和谐文明友善法治文明诚信和谐文明诚信和谐文明诚信自由文明诚信和谐文明诚信自由文明诚信和谐文明诚信自由和谐诚信文明文明诚信自由和谐友善爱国文明友善平等文明诚信民主文明诚信民主文明诚信民主文明友善平等文明友善平等文明友善平等文明友善爱国和谐友善爱国文明诚信和谐文明诚信和谐文明诚信和谐文明友善法治文明友善法治文明诚信和谐文明诚信和谐文明诚信和谐文明诚信自由和谐诚信文明和谐友善公正文明友善爱国和谐诚信自由和谐友善爱国文明诚信民主文明诚信民主文明友善爱国和谐友善公正文明友善法治文明诚信和谐文明诚信和谐文明诚信和谐文明诚信自由文明诚信民主文明诚信民主文明诚信民主文明友善平等文明友善爱国和谐友善爱国文明诚信和谐文明诚信和谐文明友善爱国和谐友善公正和谐友善公正文明友善爱国和谐友善爱国文明友善平等文明诚信自由文明诚信民主文明友善平等文明诚信自由和谐诚信自由文明诚信民主文明诚信民主文明友善平等文明友善爱国文明友善法治文明友善法治文明友善法治文明诚信和谐文明友善爱国和谐诚信文明文明诚信民主文明诚信民主文明诚信自由和谐诚信文明文明诚信民主文明诚信民主文明诚信民主文明友善平等文明诚信自由和谐诚信自由和谐友善爱国文明诚信民主文明友善平等文明诚信民主文明诚信民主文明友善平等文明友善平等文明友善平等文明诚信民主文明诚信自由和谐友善公正和谐诚信文明和谐友善公正和谐友善公正和谐诚信文明和谐友善公正文明诚信民主文明友善爱国和谐诚信自由和谐诚信自由和谐友善爱国和谐诚信自由和谐诚信自由和谐友善爱国文明友善平等文明诚信民主文明诚信民主文明友善爱国
4、先解一下下面的社会核心价值观编码得到
++++++++[>>++>++++>++++++>++++++++>++++++++++>++++++++++++>++++++++++++++>++++++++++++++++>++++++++++++++++++>++++++++++++++++++++>++++++++++++++++++++++>++++++++++++++++++++++++>++++++++++++++++++++++++++>++++++++++++++++++++++++++++>++++++++++++++++++++++++++++++<<<<<<<<<<<<<<<<-]>>>>>>>+++++++.>----.<-----.+++.>>-----.<++++.--.<+.-------.>.----.-----.-.-.<.>+++++++.>--------.<<.>>++.<----.++++.>--.<<.>+.++.>+++.----.<++.<++++.>>++++++++.<<<<<<+.>>>>>>+++.
5、得到的字符串是Brainfuck编码,再次解密

得到

glbe{pnf_njedc_js_ufjs_kmvrocz!}

河南省第二届“金盾信安杯”网络安全大赛 WriteUp Crypto+Misc_第24张图片

6、得到的这个密文应该就是需要密钥解密了~

现在去看一下secret.c文件,分析出密钥

#include 
#include 
#include 

int main(int argc, char* argv[]) {

    unsigned int first, second, thirdly, fourthly;

    if (first + 2 != 100)
    {
        printf("wrong!\n");
    }

    if (second * second != 9409)
    {
        printf("Made a mistake!\n"); 
    }

    if (thirdly / 7 == 14 && thirdly < 100)
    {
        printf("yes! You got it\n");
    }
    
    if (fourthly != 121)
    {
        printf("not this!\n");
    }
    
    int p[4] = {first,second,thirdly,fourthly};
    int i;

    printf("key:");
    for ( i = 0; i < 4; i++)
    {
        printf("%c", p[i]);
    }

    printf("\n");
    return 0;
}
7、需要满足四个if语句,可以精准得到四个数字,分别为98 97 98 121,这四个数字对应ASCII编码的baby,使用多表替换的加密方法,常见的就是维吉尼亚了,在线解密

得到答案

flag{one_piece_is_this_journey!}

河南省第二届“金盾信安杯”网络安全大赛 WriteUp Crypto+Misc_第25张图片

你可能感兴趣的:(CTF)