目录
第一题 伟大的侦探
打开压缩文件,有一个文件夹和一个文本,文本里面有对密码的提示
看物品得知是EBCDIC编码,用010打开
得到密码
输入密码打开图片后发现是是一些小人,摆着不同的姿势,结合题目伟大的侦探,想到福尔摩斯,在网上查一下,找到对应的图片,对照进行翻译
得到flag{iloveholmesandwllm}
第二题 zip
题目有提示,将得到的信息拼在一起
解压压缩包,打开文件,发现有很多,每一个里面都是一个带密码的文本文件
用末初的脚本,得到所有文件内容拼起来的base64编码
解密发现rar文件的文件尾
用010打开文本文件,添加文件头52 61 72 21 1A 07 00
得到压缩文件,打开后看注释得到flag{nev3r_enc0de_t00_sm4ll_fil3_w1th_zip}
脚本
#python3
import zipfile
import string
import binascii
def CrackCrc(crc):
for i in dic:
for j in dic:
for k in dic:
for h in dic:
s = i + j + k + h
if crc == (binascii.crc32(s.encode())):
f.write(s)
return
def CrackZip():
for i in range(0,68):
file = 'out'+str(i)+'.zip'
crc = zipfile.ZipFile(file,'r').getinfo('data.txt').CRC
CrackCrc(crc)
print('\r'+"loading:{:%}".format(float((i+1)/68)),end='')
dic = string.ascii_letters + string.digits + '+/='
f = open('out.txt','w')
print("\nCRC32begin")
CrackZip()
print("CRC32finished")
f.close()
第三题 girlfriend
打开文件发现是一个音频文件,用Audacity打开,开始觉得是摩斯密码,但是听音频的时候不太像,感觉像是那种手机号码的按键声
看wp之后发现确实是,用dtmf2num
得到一串数字后,想着和九键应该有联系,因为以前手机是按键的那种九键,数字表示按键位置,几个数字表示第几位
翻译得到youaremygirlfriends,即为flag
第四题 alison_likes_jojo
解压文件得到
binwalk一下第一张图片,发现里面有一个压缩包,分离出来
压缩包里面的文本文件需要密码打开,进行暴力破解,得到密码
打开发现是一段编码,用base64解码
并没有直接出现答案,反复解码,得到killerqueen,这时候想到昨天有一题也是两张图片,然后第一张图片里得到的信息是第二张图片的密码
即为outguess隐写 ,得到1.txt
得到flag {pretty_girl_alison_likes_jojo}
第五题 zips
打开111.zip文件需要密码,暴力破解密码723456
打开得到一个压缩包文件,一个文本文件,文本文件打不开,用WinHex打开111.zip,发现zip伪加密,改为偶数之后保存
文本文件打开,是一段python代码,运行一下
结果是数值接近的数字,了解到是掩码爆破,得到密码,打开文件得到flag
第六题 (╯°□°)╯︵ ┻━┻
打开文件是连在一起的十六进制数值
用网上获得的脚本运行直接得到flag
脚本
# -*- coding:utf-8 -*-
import re
import urllib
list1 = []
list2 = []
s = "d4e8e1f4a0f7e1f3a0e6e1f3f4a1a0d4e8e5a0e6ece1e7a0e9f3baa0c4c4c3d4c6fbb9b2b2e1e2b9b9b7b4e1b4b7e3e4b3b2b2e3e6b4b3e2b5b0b6b1b0e6e1e5e1b5fd"
print
len(s)
result = re.sub(r"(?<=\w)(?=(?:\w\w)+$)", " ", s)
print
result
urlencode_s = "%" + result.replace(" ", "%")
print
urlencode_s
hex_s = "0x" + result.replace(" ", "0x")
print
hex_s
print
hex_s[-4:8]
list_hex = []
for i in range(len(hex_s)):
if ((i + 1) % 4 == 0):
print
hex_s[(i - 3):(i + 1)]
list1.append(hex_s[(i - 3):(i + 1)])
print
i
else:
print
i
continue
print
list1
for i in list1:
list2.append(int(i, 16))
print
list2
print
253 - 125
list3 = []
print
len(list2)
for i in range(67):
list3.append(chr(int(list2[i]) - 128))
s = "".join(list3)
print (s)
第七题 爬
打开文件后啥也没出现,放到kali里面binwalk一下,发现里面还有一个PDF和jpg
用PDF打开文件,看到下面提示说flag被图片盖住了,跟binwalk显示的结果相同
删掉上面的图片,得到一串16进制编码
在线转化得到flag
总结:学习到掩码解密,outguess解密,根据题目和图片联想到的福尔摩斯小人跳舞图片的解密形式,音频不一定是福尔摩斯密码,可能是另一种形式(想法不能局限),积累脚本,解决图片叠在一起的问题