声明:以下CTF题均来自网上收集,在这里主要是给新手们涨涨见识,仅供参考而已。需要题目数据包的请私信或在下方留言。
9.WTF?(来源:实验吧)
1.关卡描述
2.解题步骤
分析:
查看文件 :
发现是一段段重复的字母,拉到最后,发现最后两个等号。
于是猜测是base64编码,解码得到0和1组成的一串字符串。
统计字数,发现总字数为65536,开根号,得到长宽 256*256=65536。
分析到这里题目就很清楚了,这是一道作图题,猜测为二维码。
利用python编程得出二维码图片,扫描可得flag。
# -*- coding:utf8 -*-
from PIL import Image
weight = 256
height = 256
with open("11.txt") as f:
contents = f.read()
newIm = Image.new('RGB', (weight, height), 'white')
white = (255,255,255)
black = (0,0,0)
for i in range(0,height):
for j in range(0,weight):
if(contents[weight*i+j] == '1'):
newIm.putpixel((i,j),black)
else:
newIm.putpixel((i, j), white)
f.close()
newIm.save("QR.png")
flag{QR_Code_666_!!_?}
最终提交格式为:QR_Code_666_!!_?
10.有趣的文件(来源:实验吧)
1.关卡描述
2.解题步骤
分析:
打开下载的funfile文件,里面都是这样的格式:
很明显前面的地址不用管,把后面的字符串串在一起,并解码为二进制字符保存。最关键的是搞明白这个文件究竟是什么类型的,文件头afbc 1c27很明显没见过,联想以前gif图片总是缺少gif头,这次的文件很大可能就是缺少了部分文件头。百度一下,未果。谷歌一下,有果。
搜到7a37 afbc 1c27开头的,然后我写程序处理文件,再在开头加上7a37后,生成的文件也是捉摸不到什么头绪。之后懵了一段时间,我翻了谷歌搜索里面的链接跳来跳去,看到一个让我醒悟的文件头377a bcaf 271c,在对照之前所搜索的,一下子就反应过来,377a不就是'7z'的意思么,为了谨慎,再搜索文件头标志,发现377a bcaf 271c就是7z的,所以原文件是每2个字符颠倒了位置,这一点程序里修改下即可。要注意的一点是,保存文件要以二进制文件的形式来保存。
RlVOTllfUDFDVFVSMw==
最后提交的格式:CTF{FUNNY_P1CTUR3}
base64题目里出现的挺多的,唠叨两句。
base64{
a~z;
A~z;
+;
/;
=;
}//共65个字符,将三个字节数据,转换成4个字节数据,不足三个字节数据最后用=补上。所以其长度必定整除16位。