CTF杂项之总结(一)

最近准备CTF比赛,刷题有感,故作总结。

题1:

打开压缩包,得到名为key的exe文件。第一猜想可能是小程序逆向,所以尝试打开运行。系统提示:无法打开的可执行文件。
好的,右键选择属性,查看是否有猫腻。没有任何信息。
右键选择010或者notepad++打开。得到如下信息:注意文件头看到文件头的关键信息——
data:image/jpg;base64
这是jpg图片base64隐写的关键字。在网售搜寻图片base64转码工具,转码得到原图片。是一张二维码。扫码得到flag。

总结:
1.拿到题目时,应当首先查看是否可以打开、查看属性栏是否有隐藏信息、查看文件类型。以上三方面的信息可以大致确定题目的考点。
2.对文件头要保持一定的敏感度,常见文件头如下:
如果无法从文件头确定文件类型的话,对解题将是一大阻碍(比如此题如果不知道图片的base64隐写的话,便不知道考题的考察方向了。)同时,暂时没有找到离线解析图片base64隐写的工具。

题2:

打开压缩包,得到一张图片和一个名为music的压缩包。
在这里插入图片描述图片打开如下:
在这里插入图片描述压缩包打开如下:
在这里插入图片描述压缩包中的音频文件解压需要密码。考虑,密码藏于这张图片之中。

图面中最大的特征就是图片下方的黑灰小点。必定是需要将其解码。根据盲文对照表将其解码得到密码为kmdonowg。将音频文件解压。打开试听,得到“滴滴滴”的摩斯密码。
如果纯人工听取可能会有偏差。故使用音频分析文件打开:
打开得到的粗细相间的音频粗条纹为(-),细条纹为(.),大间隔为每个莫斯码的分格。人工将其转码得到如下莫斯密码:
-.-. - …-. .-- .–. . … ----- —… --… …-- …— …–… …— …-- -… --…
在kali中,采用py脚本将其转码为字符串
c t f w p e i 0 8 7 3 2 2 3 d z

代码(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代码。后来才想到海伦凯勒是一位盲人。所以这个密文是盲文。
在此附上盲文对照表:
在这里插入图片描述实际上,所谓杂项的脑洞在于挖掘题目给出的信息。而这些信息往往出现在意想不到的地方。有些明显有些隐晦。

题3:

打开压缩包,只有一个名为flag的jpg文件
在这里插入图片描述一如往常,右键查看属性,010查看文件头。
并没有什么异常。
尝试kali下binwalk分析。分析得到,这个图片文件还藏着一张图。dd命令分离得到——
在这里插入图片描述接下来便无疾而终……
是的,没有任何的信息。两张图表示的内容是一样的。同时使用图片分析工具stegsolve查看各类通道也没有任何信息。

经过大佬提示——这是三明治,两片面包夹肉,找到肉就找到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图片,是爱因斯坦照片:在这里插入图片描述另一个压缩包打开,是名为flag的txt文件,需密码才能进解压。
那么,密码应该藏在图片之中。右键属性查看,照片备注中出现一行诡异的信息——
在这里插入图片描述尝试将其作为密码,解压flag.txt。
解压成功。

总结:
实际上我在解题时并没有上述那么顺利。我跳过了查看属性这一步骤,直接查看010代码。由于信息繁杂,并没有找到password的信息。还通过stagsolve查看各个通道等操作。
这真的提示我们需要按照步骤,从简到繁,层层排查,才能找到信息。

题5

打开压缩包,是一个未知格式的文件。文件名为What kind of document is this_
所以出题人是想考察文件格式。让我们猜测这个文件到底是什么文件。
用010打开,查看文件头:在这里插入图片描述这里再次贴上常见文件头列表:
在这里插入图片描述文件头D0CF11E0,所以这是一个MS Word/Excel文件。修改后缀为.doc。打开提示需要密码。
由于题目只有一个文件,即What kind of document is this_
所以猜测没有密码提示,尝试暴力破解。使用office暴力破解软件PassFab for Office,破解无果。
大佬给出提示:文件头D0CF11E0实际对应的文件是MS Office文件,而MS Office文件包括MS Word/Excel/PPT。而office暴力破解软件需要在文件格式正确时才能够正确爆破密码。
所以依次尝试Excel/PPT,发现ppt才是正确的文件格式。爆破密码得到——9919
打开ppt,发现一共8张幻灯片,第一张幻灯片存有一张图片:在这里插入图片描述另外7张没有加入信息。尝试将图片导出另存,然后分析……
但是并没有结果。
随后,观察其他ppt,发现一张空白ppt与其他ppt有所不同——
在这里插入图片描述
在这里插入图片描述只有副标题文本框。尝试找到主标题文本框,发现——在这里插入图片描述在这里插入图片描述至此解题完毕。

总结
1.文件头D0CF11E0实际对应的文件是MS Office文件,而MS Office文件包括MS Word/Excel/PPT。而office暴力破解软件需要在文件格式正确时才能够正确爆破密码。
2.遇到文件中文件时——如本题ppt中存在信息。也应当按照从简到繁的步骤去分析——先查看每张幻灯片中的状态,查找对比文本框及文本信息,再分析图片等信息。

总结

以上题目多多少少都与图片有关,总结一下解题步骤:
原则:从简到繁——
查看属性信息;
查看010二进制文件信息——文件头,文件尾
若存在密文,且藏于图片,思索图片是否表达了某些含义。含义即为提示。
若不存在密文文件,则需要考虑是否通过爆破来解决了。

一层一层剥开谜题,每层的思路都要坚持从简到繁的原则,不然,很可能会错过很多关键信息。
意会图片含义也相当重要。

  • 8
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
根据提供的引用内容,我了解到你在CTF比赛中遇到了一些问题。关于CTF杂项题目中的filter,我可以给你一些介绍。 在CTF比赛中,filter通常是指一种对输入进行过滤或转换的机制。这些题目可能会要求你通过某种方式绕过或绕过过滤器来获取答案或漏洞。 常见的filter类型包括: 1. 字符串过滤器:这些过滤器会限制你可以输入的字符或字符串。你可能需要尝试不同的字符或字符组合来绕过过滤器。 2. 文件过滤器:这些过滤器会限制你可以上传或读取的文件类型。你可能需要找到一种方法来绕过文件类型检查,以上传或读取特定类型的文件。 3. 命令过滤器:这些过滤器会限制你可以执行的命令或命令参数。你可能需要找到一种方法来绕过命令过滤器,以执行特定的命令或参数。 为了解决这些题目,你可以尝试以下方法: 1. 了解过滤器的工作原理:阅读题目描述和提示,了解过滤器是如何工作的,以及它们可能会限制哪些内容。 2. 分析过滤器的漏洞:尝试找到过滤器的漏洞或绕过点。这可能需要对过滤器进行代码审计或尝试不同的输入。 3. 尝试不同的输入:尝试使用不同的字符、字符串、文件类型或命令参数来绕过过滤器。你可以尝试一些常见的绕过技巧,如URL编码、特殊字符、文件扩展名绕过等。 4. 与团队合作:如果你遇到了困难,可以与你的团队成员或其他参赛者合作,共同解决问题。他们可能有不同的思路和经验,可以帮助你找到答案。 希望这些信息对你有帮助!如果你有任何进一步的问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值