点开给的链接就是一串字符串,很明显的是16进制字串,很像一个文件的形式。于是把所有字符复制到文件中,然后用python脚本读取除前面第一个字节外的所有字节,并以二进制写入文件中。 但是还有一个问题,就是文件类型是什么?前几次实验时就说过,每一个文件都有一个文件头,指明其文件类型。于是上网搜索afbc 1c27。解题链接:http://www.shiyanbar.com/ctf/1861
看来是7z类型的文件,而且前面还有一个7a37,于是加上7a37重新将字符串写入到1.7z文件中。 后来写完发现并不能进行读取,打开文件出现错误。说明文件还存在某些问题 然后用ghex打开发现,这个文件中的7a37变成了z7,而不是想要的7z,说明该文件存在大小端转换的问题。 所以需要将每4个字节中前2字节和后2字节进行调换位置。 代码如下:
f = open('1.txt','r') str = '377a' while 1: result = f.readline() if not result: break line = result.split(' ')[1:] line = [x[2:]+x[:2] for x in line] str += ''.join(line).replace('\n','') fw = open('1.7z','wb') fw.write(str.decode('hex')) f.close() fw.close()调换位置后再次打开,发现一张阿狸的图片。打开发现并没有flag,所以用ghex进行打开
直接看见了一个奇怪的东西,Q1RG{RlVOTllfUDFDVFVSMw==} 这个东西一看就是base64编码过的,在线解密看看,后来发现并没办法解密,想到应该是{}这个符号的问题,把符号删了再试试
恩,这个明显就是flag的格式了,把{}再加进去,得到flag CTF{FUNNY_P1CTUR3}