0x01,镜子里面的世界
附件内是一个png图片,使用stegsolve打开
接着打开Analyse-Extract Preview,勾选LSB
在文件开头得到了key值,st3g0_saurus_wr3cks,key值也是flag
0x02,爱因斯坦
通过binwalk查看图片,发现里面藏着一个flag.txt
接着用formemost进行文件分离,
进入到分离之后的文件夹中,发现了一个zip压缩包文件
结果提示需要密码,在图片的属性中发现了一个备注
输入备注内容得到了flag.txt
0x03,ningen
根据题目描述,得知一个密码为4位数字,通过foremost发现里面存在着一个txt文件,接着尝试用binwalk进行文件分离
进入分离后的文件夹内,得到了一个压缩包,解压时发现需要输入密码,利用ARCHPR进行爆破
得到了密码,进行解压得到了ningen.txt
0x04,小明的保险箱
根据题目描述得知密码为4位纯数字密码,接着用winhex打开这个图片,Ctrl+F搜索PK,,发现存在这pk字样
于是修改文件后缀为zip,发现里面有一个2.txt文件,接着通过ARCHPR进行爆破,得到了密码
接着输入7869得到了flag
0x05,easycap
一个流量包,打开之后全是TCP的流量包,直接右键追踪一下TCP流量
直接得到了flag
0x06,隐藏的钥匙
直接用winhex打开图片,搜索flag得到了一个base64加密过的flag
解密后就是flag了
0x07,另一个世界
用winhex打开,在尾部发现了01数字,将01这一串内容复制出来,然后用厨师进行解码
koekj3s就是flag的内容了
0x08,神秘龙卷风
打开后事一个压缩包,里面存在着一个需要密码的txt文件,通过ARCHPR进行破解密码
爆破得到密码为5463,输入后得到了一个BrainFuck加密的内容,用随波逐流进行解码
得到了flag
0x09,FLAG
将图片通过stegsolve打开,并点击Analyze-Extract Preview
发现文件头是pk,是一个压缩包,先把这个文件保存到本地,使用除了winrar以外的j解压软件打开这个zip文件,否则会显示文件损坏
接着使用kali中的strings查看这个1
把hctf修改成flag就可以了
0x10,后门查杀
附件下载之后,系统直接提示报毒了,将其保留之后打开附件是一个html网页
根据题目后门查杀,用D盾直接扫目录
有一个文件直接爆红,首先查看该文件
一下子就看到了一个pass,经过提交后,发现是正确的flag
0x11,webshell查杀
跟后门查杀题目一样,都是拿D盾扫目录就可以得到pass值了
首先查看爆红的文件
这个就是flag
0x12,来首歌吧
附件是一个音频,直接用Audacity打开
发现是莫斯密码的格式,直接打出莫斯
..... -... -.-. ----. ..--- ..... -.... ....- ----. -.-. -... ----- .---- ---.. ---.. ..-. ..... ..--- . -.... .---- --... -.. --... ----- ----. ..--- ----. .---- ----. .---- -.-.
拿去解码
提交flag时注意英文字母为大写字母
0x13,秘密文件
打开后是一个流量包,根据题目描述,可以查看ftp的流量包
发现了一个rar压缩包,使用foremost进行文件分离
打开压缩包后,提示要输入密码,使用ARCHPR进行爆破
得到了密码为1903,打开后就是flag
0x14,被劫持的神秘礼物
是一个流量包。看到题目描述中有账号密码,想到了http流量包,直接过滤http流量
利用shell脚本将这两个字符串拼接在一起,并以md5的形式输出
0x15,[BJDCTF2020]just_a_rar
打开附件,得到了下面的内容
利用ARCHPR进行爆破
得到了密码2016
打开后得到了一个图片,在图片的属性中得到了flag
0x16,[BJDCTF2020]一叶障目
用010打开图片后显示CRC不匹配
在网上找到了一个修复图片CRC报错的脚本
#coding=utf-8 import zlib import struct #读文件 file = '/mnt/hgfs/share/1.png' #注意,1.png图片要和脚本在同一个文件夹下 fr = open(file,'rb').read() data = bytearray(fr[12:29]) crc32key = eval(str(fr[29:33]).replace('\\x','').replace("b'",'0x').replace("'",'')) #crc32key = 0xCBD6DF8A #补上0x,copy hex value #data = bytearray(b'\x49\x48\x44\x52\x00\x00\x01\xF4\x00\x00\x01\xF1\x08\x06\x00\x00\x00') #hex下copy grep hex n = 4095 #理论上0xffffffff,但考虑到屏幕实际,0x0fff就差不多了 for w in range(n):#高和宽一起爆破 width = bytearray(struct.pack('>i', w))#q为8字节,i为4字节,h为2字节 for h in range(n): height = bytearray(struct.pack('>i', h)) for x in range(4): data[x+4] = width[x] data[x+8] = height[x] #print(data) crc32result = zlib.crc32(data) if crc32result == crc32key: print(width,height) #写文件 newpic = bytearray(fr) for x in range(4): newpic[x+16] = width[x] newpic[x+20] = height[x] fw = open(file+'.png','wb')#保存副本 fw.write(newpic) fw.close
然后打开修复后的png图片就可以得到flag了
0x17,谁赢了比赛?
打开附件得到了一张棋谱图片
拉入到winhex内,在文末看见了一个flag.txt文件,利用foremost进行分离
发现有一个gif文件被加密了使用ARCHPR进行爆破
得到密码1020,打开这个gif文件是一个棋谱的步骤图,尝试用stegslove进行图片的分离
点击analyse-frame browser,最后在310页看见了跟其他页面不一样的内容
接着将这一帧保存下来,再用stegslove进行查看
在red 0 处发现了一个二维码,使用CQR进行扫描
得到了flag
0x18,梅花香之苦寒来
查看图片的属性后,在详细信息内发现了一个提示
然后用winhex打开发现了一堆数字,查询后得知是16进制数,尝试将这些数字转成字符串格式
将这个结果保存成一个txt文件,并拉到kali中用gnuplot进行绘制图片
得到了一个二维码,用CQR进行扫码
这样就得到了flag
0x19,[ACTF新生赛2020]outguess
附件是一个压缩包,是一个tmp文件夹,打开后有得到了一个压缩包,打开压缩包后得到了一个jpg图片和txt文件
然后将图片用winhex打开
在开头发现了exif,接着看图片的属性,发现了社会主义核心价值观编码
进行解码
得到了密码abc,再联想到题目outguess,发现有一个工具叫做outguess,尝试在kali内配置一下
得到了flag
0x20,[WUSTCTF2020]find_me
将图片保存到本地,先查看图片的属性
发现了盲文,尝试解码
得到了flag