CTF杂项之总结(一) |
您所在的位置:网站首页 › 杩埚厕灏斾箶涓筶ogo › CTF杂项之总结(一) |
最近准备CTF比赛,刷题有感,故作总结。 题1:打开压缩包,得到名为key的exe文件。第一猜想可能是小程序逆向,所以尝试打开运行。系统提示:无法打开的可执行文件。 好的,右键选择属性,查看是否有猫腻。没有任何信息。 右键选择010或者notepad++打开。得到如下信息: 总结: 1.拿到题目时,应当首先查看是否可以打开、查看属性栏是否有隐藏信息、查看文件类型。以上三方面的信息可以大致确定题目的考点。 2.对文件头要保持一定的敏感度,常见文件头如下: 打开压缩包,得到一张图片和一个名为music的压缩包。 图面中最大的特征就是图片下方的黑灰小点。必定是需要将其解码。根据盲文对照表将其解码得到密码为kmdonowg。将音频文件解压。打开试听,得到“滴滴滴”的摩斯密码。 如果纯人工听取可能会有偏差。故使用音频分析文件打开: 代码(python2.7可用)如下: #!/usr/bin/python import pprint import re chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890" codes = """.- -... -.-. -.. . ..-. --. .... .. .--- -.- .-.. -- -. --- .--. --.- .-. ... - ..- ...- .-- -..- -.-- --.. .---- ..--- ...-- ....- ..... -.... --... ---.. ----. -----""" dd = dict(zip(chars.lower(),codes.split())) DD = dict(zip(codes.split(),chars.lower())) #pprint.pprint(DD) def chars2morse(char): return dd.get(char.lower(),' ') def morse2chars(morse): return DD.get(morse,' ') while True: str = raw_input() x = str.split(' ') ccc = ''.join(x) if re.match('^[0-9a-zA-Z]+$',ccc): print ' '.join(chars2morse(c) for c in ccc) else: cc = str.split() print ' '.join(morse2chars(c) for c in cc)总结: 最初拿到题目时,我还以为黑灰密文为三行8列的01代码。后来才想到海伦凯勒是一位盲人。所以这个密文是盲文。 在此附上盲文对照表: 打开压缩包,只有一个名为flag的jpg文件 经过大佬提示——这是三明治,两片面包夹肉,找到肉就找到flag。 好的,010打开二进制代码,查询jpg文件头FFD8FF,得到两个结果,在第二个文件头前有一串可疑的字符串—— MZWGCZ33GZTDCNZZG5SDIMBYGBRDEOLCGY2GIYJVHA4TONZYGA2DMM3FGMYH2 观察应该是base加密。尝试base64解码,无果。尝试base32解码,得到flag。 总结: 1.如上题一样。要深入挖掘图片给出的信息。当没有提示的时候,图片隐藏的含义就是提示。 2.dd命令相关知识拓展 dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。 注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512;c=1;k=1024;w=2 参数注释: if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file > of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file > ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。 obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。 bs=bytes:同时设置读入/输出的块大小为bytes个字节。 cbs=bytes:一次转换bytes个字节,即指定转换缓冲区大小。 skip=blocks:从输入文件开头跳过blocks个块后再开始复制。 seek=blocks:从输出文件开头跳过blocks个块后再开始复制。 注意:通常只用当输出文件是磁盘或磁带时才有效,即备份到磁盘或磁带时才有效。 count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。 conv=conversion:用指定的参数转换文件。 ascii:转换ebcdic为ascii ebcdic:转换ascii为ebcdic ibm:转换ascii为alternate ebcdic block:把每一行转换为长度为cbs,不足部分用空格填充 unblock:使每一行的长度都为cbs,不足部分用空格填充 lcase:把大写字符转换为小写字符 ucase:把小写字符转换为大写字符 swab:交换输入的每对字节 noerror:出错时不停止 notrunc:不截短输出文件 sync:将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。 题4打开题目,得到两个压缩包。其中一个压缩包,解压得到名为misc2的jpg图片,是爱因斯坦照片: 总结: 实际上我在解题时并没有上述那么顺利。我跳过了查看属性这一步骤,直接查看010代码。由于信息繁杂,并没有找到password的信息。还通过stagsolve查看各个通道等操作。 这真的提示我们需要按照步骤,从简到繁,层层排查,才能找到信息。 题5打开压缩包,是一个未知格式的文件。文件名为What kind of document is this_ 所以出题人是想考察文件格式。让我们猜测这个文件到底是什么文件。 用010打开,查看文件头: 总结 1.文件头D0CF11E0实际对应的文件是MS Office文件,而MS Office文件包括MS Word/Excel/PPT。而office暴力破解软件需要在文件格式正确时才能够正确爆破密码。 2.遇到文件中文件时——如本题ppt中存在信息。也应当按照从简到繁的步骤去分析——先查看每张幻灯片中的状态,查找对比文本框及文本信息,再分析图片等信息。 总结以上题目多多少少都与图片有关,总结一下解题步骤: 原则:从简到繁—— 查看属性信息; 查看010二进制文件信息——文件头,文件尾 若存在密文,且藏于图片,思索图片是否表达了某些含义。含义即为提示。 若不存在密文文件,则需要考虑是否通过爆破来解决了。 一层一层剥开谜题,每层的思路都要坚持从简到繁的原则,不然,很可能会错过很多关键信息。 意会图片含义也相当重要。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |