打开这道题,这道题流程很复杂,绕来绕去,套来套去。中间有卡住的地方,我都忘记怎么做了,整理后才能发出来
提交了WP,但是审核时间太长了,所以先发出来了。
下载文件后解压,解压后有3个文件,
首先打开前言,
前言的内容并没有实际的提示。
打开第2个jpg文件,
很舔狗了
用binwalk先查看有没有隐藏文件,
发现有ZIP压缩文件,用foremost提取出来,
解压缩发现需要密码,
密码哪里找呢?
在bzzb.jpg的属性里面有提示,
这里选中之后才知道是空格和Tab,乍一看以为是[:]。
看到这个提示之后还是不懂,但是还有第3个文件,解压缩file.zip之后,
打开文件夹,
随便打开其中的txt查看,
可以看到第一位就是和提示有关的空格或者tab了,直到这个编号124,124之后的文件就没有第一位了,所以这个124位的就是密码。
按照前面的提示,写python脚本,将第一位提取出来,
f2 = open('C:\\Users\\Administrator\\Desktop\\out.txt', 'w')
for i in range(0,124):
f1 = open("C:\\Users\\Administrator\\Desktop\\1\\"+"XXX"+str(i+1)+"EEE.txt", 'r')
f2.write(f1.read(1))
f1.close()
f2.close()
将空格转为0,tab转为1。(用txt的替换即可)
这个时候根据作者的提示,先将二进制转为十六进制,再转为ascii。
二进制转十六进制应该是4位一转的,所以转成十六进制是31位。
这里其实就有感觉了,因为ascii一般是3位数转换为字符,31位除以3是除不尽的,所以先看看前面几位转换为什么。
所以这里的107 101 121 123 可以转换为key{
这里很容易想到还有一个 } 符号在结尾。
所以现在是key{}中间一串字符,中间的一串长度是31-12-3=16位,除不尽3,但是可以观察得到
如果断的灵活一点,有可能是大写的。
所以得到压缩包密码为Ikk2000。
解压缩之后,
用010 editor打开图片,
发现隐藏了一个hint.txt,里面提示说:提示就是标题。
所以搜索imageIN,
是一个隐写软件,下载之后放入图片,
另存这个password.txt,
打开后是一串盲文,
这个是盲文密文,那么key是另一个文件,
这里的信息是Brainfuck加密,但是直接解密是解不出来的。
这里第一行的提示想了很久不懂,
询问了群里的大佬八神才有了思路,
找到brainfuck在线解密网站:https://www.splitbrain.org/services/ook
根据师傅的思路,在第一行加上15个加号后,
我以为这就完了????
但是解密盲文,
卡在这里,
原来这个密码不是真的密码,又问了大佬,
这里第一次接触到了零宽!!
它叫零宽连字,全称是Zero Width Joiner,简称:ZWJ,是一个不打印字符,放在某些需要复杂排版语言(如阿拉伯语、印地语)的两个字符之间,使得这两个本不会发生连字的字符产生了连字效果。零宽连字符的Unicode码位是U+200D (HTML: ‍ ‍)。
简而言之就是这个ImKey中间有隐藏文字,但是不同的加密方式会直接影响到解密的效果,所以很多在线网站都解不出来。(如下)
直到找到了正确的。http://330k.github.io/misc_tools/unicode_steganography.html
这里就很明确了,真的key是什么。
flag出来了!!
欢迎关注我的微信公众号!!~~
一起快落学习CTF吧!!~~ (*^▽^*)