0x01 金三胖
题目: 文件链接
做法:
打开GIF发现有不一样的帧,判断是插入帧了,用
ffmpeg -i aaa.gif %d.jpg
把GIF分离成JPG文件,把红色帧的内容拼起来,得到flag
flag{he11ohongke}
0x02 二维码
题目: 文件链接
做法:
扫码提示文字secret is here
,凭经验是图片隐写,用命令
foremost -T 'QR_code.png'
进行分离,得到一个zip压缩包,打开发现加密,压缩包内文件名字为4number.txt
,
用ARCHPR进行暴力破解得到密码为7639
,打开文件得到
CTF{vjpw_wnoei}
flag{vjpw_wnoei}
0x03 N种方法解决
题目: 文件链接
做法:
直接点开发现不行,用Winhex打开后看到data:image/jpg;xxx
,是图片转base64,直接添加<img src="data:image/jpg;xxx">
,然后后修改exe
后缀为html
,
打开网页后得到二维码,解码得到
KEY{dca57f966e4e4e31fd5b15417da63269}
flag{dca57f966e4e4e31fd5b15417da63269}
0x04 大白
题目: 文件链接
做法:
直接打开,只有头部,下半部分没有,怀疑是图片的尺寸被修改了,用Winhex修改
(固定)八个字节89 50 4E 47 0D 0A 1A 0A为png的文件头
(固定)四个字节00 00 00 0D(即为十进制的13)代表数据块的长度为13
(固定)四个字节49 48 44 52(即为ASCII码的IHDR)是文件头数据块的标示(IDCH)
(可变)13位数据块(IHDR)
- 前四个字节代表该图片的宽
- 后四个字节代表该图片的高
- 后五个字节依次为:
Bit depth、ColorType、Compression method、Filter method、Interlace method
(可变)剩余四字节为该png的CRC检验码,由从IDCH到IHDR的十七位字节进行crc计算得到
无脑的做法就是,把高度修改为00 00 02 A7
,和宽度相同,然后直接看到flag{He1l0_d4_ba1}
烧脑一点的就是拿CRC检验码来算出宽度和高度,还原图片尺寸,得到
00 00 02 A7 00 00 01 DF
修改后直接打开看到flag
flag{He1l0_d4_ba1}
import zlib
import struct
import re
crc32key = 0x6D7C7135
data = bytearray(b'\x49\x48\x44\x52\x00\x00\x02\xA7\x00\x00\x01\x00\x08\x06\x00\x00\x00')
#理论上0xffffffff,但考虑到屏幕实际/cpu,0x0fff就差不多了
n = 4095
#高和宽一起爆破
reg_int = re.compile(r'(\d+)')
#提取尺寸数据
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]
crc32result = zlib.crc32(data)
if crc32result == crc32key:
w = int(reg_int.findall(str(struct.unpack(">i",width)))[0])
h = int(reg_int.findall(str(struct.unpack(">i",height)))[0])
print("0x%08X" % w,"0x%08X" % h)
0x05 基础破解
题目: 文件链接
做法:
根据题目提示,4位数字加密,用ARCHPR进行暴力破解得到密码为2563
,打开文件得到
ZmxhZ3s3MDM1NDMwMGE1MTAwYmE3ODA2ODgwNTY2MWI5M2E1Y30=
base64解码得到flag
flag{70354300a5100ba78068805661b93a5c}
0x06 你竟然赶我走
题目: 文件链接
做法:
打开图片发觉正常,用文本编辑器打开,搜索flag
,找到flag
flag{stego_is_s0_bor1ing}
0x07 乌镇峰会种图
题目: 文件链接
做法:
用文本编辑器打开,搜索flag
,找到flag
flag{97314e7864a8f62627b26f3f998c37f1}
0x08 LSB
题目: 文件链接
做法:
按照题目提示,用Stegsolve打开该图片,看每个图层的差别,发现在Red/Green/Blue 0
均出现了一点差异,
于是使用软件的Data Extract功能,选区Red/Green/Blue 0
,然后发现了PNG头部,导出二进制文件得到一张二维码,扫码识别得到
cumtctf{1sb_i4_s0_Ea4y}
flag{1sb_i4_s0_Ea4y}
0x09 rar
题目:
这个是一个rar文件,里面好像隐藏着什么秘密,但是压缩包被加密了,毫无保留的告诉你,rar的密码是4位纯数字。
做法:
直接ARCHPR暴力解密得到压缩包密码8795
,解压后打开文本得到flag
flag{1773c5da790bd3caff38e3decd180eb7}
0x0A qr
题目: 文件链接
做法:
扫码得到
Flag{878865ce73370a4ce607d21ca01b5e59}
flag{878865ce73370a4ce607d21ca01b5e59}
0x0B zip伪加密
题目: 文件链接
做法:
了解zip文件的组成,有3个部分,分别是压缩源文件数据区、压缩源文件目录区和压缩源文件目录结束标志,具体看CSDN。
压缩源文件数据区:50 4B 03 04
是头文件标记;压缩源文件目录区:50 4B 01 02
是目录中文件文件头标记,3F 00
是压缩使用的pkware版本,14 00
是解压文件所需pkware版本,00 09
是全局方式位标记,这个是伪加密的关键,00 09
标志为加密,修改为00 00
即可去掉加密提示框。
首先用WinHex打开文件,得到16进制编码,进行相关修改即可解密得到flag
flag{Adm1N-B2G-kU-SZIP}
0x0C 文件中的秘密
题目: 文件链接
做法:
查看文件的详细信息,在备注那里看到flag
flag{870c5a72806115cb5439345d8b014396}
0x0D ningen
题目:
小明通过社工,知道了秋明特别讨厌中国的六位银行密码,喜欢四位数
做法:
判断是压缩包解密,改文件后缀为zip,用ARCHPR暴力解密得到压缩包密码8368
,解压后打开文本得到flag
flag{b025fc9ca797a67d2103bfbc407a6d5f}
0x0E wireshark
题目:
黑客通过*Wireshark*抓到管理员登陆网站的一段流量包(管理员的密码即是答案)。
做法:
用Wireshark打开文件,从登录判断,密码应该在post请求里面,是明文,看到
Form item: "password" = "ffb7567a1d4f4abdffdb54e022f8facd"
flag{ffb7567a1d4f4abdffdb54e022f8facd}
0x0F 镜子里面的世界
题目: 文件链接
做法:
按照文件名的名字,用Stegsolve打开文件,翻遍图层都没发现奇怪的东西,然后点Data Extract看看文件二进制,惯例选区Red/Green/Blue 0
,得到一串字符
the secre t key is: st3g0_ saurus_wr3cks
flag{st3g0_saurus_wr3cks}
0x10 小明的保险箱
题目:
小明有一个保险箱,里面珍藏了小明的日记本,他记录了什么秘密呢?。。。告诉你,其实保险箱的密码四位纯数字密码。
做法:
判断是压缩包解密,改文件后缀为zip,用ARCHPR暴力解密得到压缩包密码7869
,解压后打开文本得到flag
flag{75a3d68bf071ee188c418ea6cf0bb043}
0x11 被嗅探的流量
题目:
某黑客潜入到某公司内网通过嗅探抓取了一段文件传输的数据,该数据也被该公司截获,你能帮该公司分析他抓取的到底是什么文件的数据吗?
做法:
用Wireshark打开文件,一般发送文件都是http/https请求,可以截取到的一般是http请求,筛选http请求看到有一个POST请求发送JPEG文件, 定位文件处导出分组字节流,然后把文件后缀改为jpg,打开图片发现正常,文本编辑器打开,搜索flag,得到flag
flag{da73d88936010da1eeeb36e945ec4b97}
0x12 爱因斯坦
题目: 文件链接
做法:
看图发现正常,用binwalk查看发现图片里存在隐写,用foremost进行分离得到一个加密压缩包,由于题目没有提示,先不爆破,用Winhex查看,修改发现不存在zip伪加密。 用winhex查看图片发现字符串
t h i s _ i s _ n o t _ p a s s w o r d
去掉空格后作为解压密码成功解压压缩包,打开解压后的文本得到flag
flag{dd22a92bf2cceb6c0cd0d6b83ff51606}
0x13 easycap
题目: 文件链接
做法:
用Wireshark打开,发现全是TCP协议,分析不出什么来,然后试下追踪TCP流,得到
FLAG:385b87afc8671dee07550290d16a8071
flag{385b87afc8671dee07550290d16a8071}
0x14 假如给我三天光明
题目: 文件链接
做法:
解压得到一个压缩包和一张图片,打开压缩包发现加密,用Winhex打开压缩包发现是RAR压缩包,修改文件后缀为rar。点开图片,图片底部的图案是盲文,找解码表对照解码得kmdonowg
,
用来解压压缩包成功。打开音频,听节奏是摩斯电码,用Audacity分析音频,根据音波的宽度,宽的为-
,窄的为.
,得到
-.-. - ..-. .-- .--. . .. ----- ---.. --... ...-- ..--- ..--.. ..--- ...-- -.. --..
摩斯电码解密得到CTFWPEI08732?23DZ
或者ctfwpei08732?23dz
,尝试下得到flag
flag{wpei08732?23dz}
0x15 FLAG
题目: 文件链接
做法:
打开常规看下文本编辑器和分辨率,都没有发现异常,用Stegsolve打开文件,翻遍图层都没发现奇怪的东西,然后点Data Extract看看文件二进制,惯例选区Red/Green/Blue 0
,看到头部是504B0304
,判断为压缩包,保存二进制文件提取出来,解压得到一个Linux二进制文件,运行一下得到
hctf{dd0gf4c3tok3yb0ard4g41n~~~}
flag{dd0gf4c3tok3yb0ard4g41n~~~}
0x16 另外一个世界
题目: 文件链接
做法:
用Winhex打开,拉到底部发现一串二进制数
01101011011011110110010101101011011010100011001101110011
8个一组,转成ascii码得到koekj3s
flag{koekj3s}
0x17 隐藏的钥匙
题目: 文件链接
做法:
用文本编辑器打开,搜索flag
得到
flag:base64:(Mzc3Y2JhZGRhMWVjYTJmMmY3M2QzNjI3Nzc4MWYwMGE=)
base64解码得到
377cbadda1eca2f2f73d36277781f00a
flag{377cbadda1eca2f2f73d36277781f00a}
0x18 荷兰宽带数据泄露
题目: 文件链接
做法:
看到是二进制文件,加上题目的信息,加上以前有刷过固件,应该是路由器相关的二进制文件,网上搜了下可以用routerpassview进行查看,泄露的应该是密码那些,搜了下password
,看到
<Username val=053700357621 /><Password val=210265 />
试了下053700357621
,成功了
flag{053700357621}
0x19 A_Beautiful_Picture
题目: 文件链接
做法:
同大白做法一致,还原尺寸后得到BDJ{PnG_He1ghT_1s_WR0ng}
flag{PnG_He1ghT_1s_WR0ng}
0x1A 后门查杀
题目:
小白的网站被小黑攻击了,并且上传了Webshell,你能帮小白找到这个后门么?(Webshell中的密码(md5)即为答案)。
做法:
用D盾扫描解压的文件,发现html/include/include.php
文件可疑,根据提示打开文件发现
$pass = '6ac45fb83b3bc355c024f5034b947dd3';
得到flag
flag{6ac45fb83b3bc355c024f5034b947dd3}
0x1B 神秘龙卷风
题目:
神秘龙卷风转转转,科学家用四位数字为它命名,但是发现解密后居然是一串外星人代码!!好可怕!
做法:
用ARCHPR暴力解密得到压缩包密码5463
,解压后打开文本,经过查询发现是Brainfuck语言,到网站解码得到flag
flag{e4bbef8bdf9743f8bf5b727a9f6332a8}
0x1C 来首歌吧
题目: 文件链接
做法:
用Audacity分析音频,看到一个音轨有摩斯电码的特征,根据音波的宽度,宽的为-
,窄的为.
,得到
..... -... -.-. ----. ..--- ..... -.... ....- ----. -.-. -... ----- .---- ---.. ---.. ..-. ..... ..--- . -.... .---- --... -.. --... ----- ----. ..--- ----. .---- ----. .---- -.-.
解摩斯电码得到
5BC925649CB0188F52E617D70929191C
flag{5BC925649CB0188F52E617D70929191C}
0x1D 小姐姐
题目: 文件链接
做法:
用Winhex打开,查找BJD(因为是BJDCTF的题),得到
BJD{haokanma_xjj}
flag{haokanma_xjj}
0x1E 九连环
题目: 文件链接
做法:
第一种:
用binwalk查看图片,发现存在压缩包,然后
python binwalk -e 123456cry.jpg
分离压缩文件,得到一张图片和一个加密压缩包,用Steghide查看图片文件信息,即执行
steghide info good-已合并.jpg
发现有ko.txt
文件隐写在其中,然后执行steghide extract -sf good-已合并.jpg
,得到ko.txt
,内容为
看到这个图片就是压缩包的密码:bV1g6t5wZDJif^J7
解压得到flag.txt
,内容为
flag{1RTo8w@&4nK@z*XL}
第二种:
用foremost
分离图片和压缩包,用Winhex
查看分离的压缩包,判断是否为伪加密,具体看链接,首行中为50 4B 03 04 0A 00 00 08
,而在分析到Offset为7210的行中,出现50 4B 01 02 3F 00 14 00 01 08
,01 08
与全局方式位标记00 08
不同,即为伪加密,01
修改为00
即可解压缩包,然后Steghide的使用同上
flag{1RTo8w@&4nK@z*XL}
0x1F 数据包中的线索
题目: 文件链接
做法:
使用Wireshark打开,追踪HTTP流,发现有问题
观察发现最下面的字符串应该为Base64编码,解码发现头部为JFIF
,判断为jpg图片文件,新建一个html文件,添加img标签后再打开查看即可看到带有flag的图片
<img src="data:image/jpg;base64,xxx">
#xxx为上文base64编码字符串
flag{209acebf6324a09671abc31c869de72c}
0x20 面具下的flag
题目: 文件链接
做法:
看到图片,直接用binwalk
看看有没有存在其他二进制文件,执行后提取到了一个vmdk硬盘文件flag.vmdk
,尝试在Kali中使用vmware-mount
命令挂载,再用tree
命令发现信息
观察NULL
文件内容,经查阅得知为Brainfuck语言,转换编码得到
flag{N7F5_AD5
缺少后半部分,无解,查相关题解为挂载vmdk会自动修复文件,因此不能直接挂载,需要用7z软件解压该硬盘文件,解压命令为
7z x flag.vmdk -o./flag
观察目录结构并与挂载硬盘时对比发现增加一个文件
观察NULL
文件内容,经查阅得知为Ook!语言,转换编码得到
_i5_funny!}
至此得到flag
flag{N7F5_AD5_i5_funny!}
0x21 webshell后门
题目:
朋友的网站被黑客上传了webshell后门,他把网站打包备份了,你能帮忙找到黑客的webshell在哪吗?(Webshell中的密码(md5)即为答案)
做法:
同后门查杀做法一致,扫到member/zp.php
文件,打开查看,有以下字符串,拼接即可得到flag
$pass = 'ba8e6c6f35a53933b871480bb9a9545c';
flag{ba8e6c6f35a53933b871480bb9a9545c}
0x22 被劫持的神秘礼物
题目:
某天小明收到了一件很特别的礼物,有奇怪的后缀,奇怪的名字和格式。小明找到了知心姐姐度娘,度娘好像知道这是啥,但是度娘也不知道里面是啥。。。你帮帮小明?找到帐号密码,串在一起,用32位小写MD5哈希一下得到的就是答案。
做法:
同数据包中的线索做法一致,追踪HTTP流,有以下字符串,拼接name
和word
的值后hash一下即可得到flag
name=admina&word=adminb&cooktime=0&checkcode=5129
flag{1d240aafe21a86afc11f38a45b541a49}
0x23 刷新过的图片
题目:
浏览图片的时候刷新键有没有用呢?
做法:
用binwalk
试下,发现没有其他文件可以分离,根据题目提示,键盘上的刷新键是F5
,搜下F5隐写发现一个项目可以处理,使用该项目的命令处理得到output.txt
文件
java Extract /root/test/Misc.jpg
尝试读取output.txt
文件,发现是乱码,看下文件头发现是50 4B
,判断为zip压缩包,打开发现需要密码,于是查看下有没有出现zip伪加密,发现存在伪加密,修改伪加密16进制位为0即可解压,得到flag
flag{96efd0a2037d06f34199e921079778ee}
0x24 snake
题目: 文件链接
做法:
用binwalk
试下,分离出cipher
和key
两个文件,key
文件为一串Base64字符串,解码得到
What is Nicki Minaj's favorite song that refers to snakes?
搜索Nicki Minaj snake
得到一个关键字anaconda
搜索snake cipher
发现有一种加密算法为Serpent,在此网站上可以解密,提取cipher
文件的16进制解密得到
#待解密,密码为"anaconda"
DC44158CD6A283B543B412F716A7D1FDD210D8EB9E8937E23560F9EE240131BF1CE75CABB68EBFDA83730C728DBC748D
#ECB解密
CTF{who_knew_serpent_cipher_existed}
flag{who_knew_serpent_cipher_existed}
0x25 梅花香之苦寒来
题目: 文件链接
做法:
直接用binwalk
分离发现没东西,用Winhex打开看发现很多连贯的16进制数值,取一段去转ASCII码发现信息
#16进制数值
290a28382c3438290a28382c3439290a28382c3530290a28
#ASCII转码
)
(8,48)
(8,49)
(8,50)
(
观察发现应该是二维码坐标集合,于是把该图片文件前面关于图片的内容全部删除,留下16进制数值,并修改文件名为meihuai.txt
,使用脚本处理得到二维码图片
import matplotlib.pyplot as plt
import numpy
import binascii
source=open('meihuai.txt','rb').read()
source=source[:]
source=binascii.unhexlify(source)
#16进制转ASCII码
temp=source.decode()
convert=open('convert.txt','w')
#去除行括号
for i in temp:
convert.write(i.strip('(').strip(')'))
convert.close()
#绘图,"k"参数为黑色,"."参数为填充字符
x,y=numpy.loadtxt('convert.txt',delimiter=',',unpack=True)
plt.plot(x,y,'k.')
plt.show()
扫描生成二维码得到flag
flag{40fc0a979f759c8892f4dc045e28b820}
0x26 菜刀666
题目: 文件链接
做法:
用Wireshark打开,追踪TCP流,观察有无异常
观察第1个TCP流,action
参数值Base64解码为乱码,继续观察
增加了z1
参数值,Base64解码得到
D:\wamp64\www\upload
判断应该是上传了某些文件,继续追踪TCP流,发现在第7个TCP流有异常,根据z1
参数值为路径,推断z2
参数值为二进制文件值
直接保存数据为原始数据到新文件123
存放,用Winhex删除与该二进制文件无关的值,包括头尾,然后在Winhex中按Ctrl+R
选择十六进制ASCII -> 二进制
转换文件,得到以下内容
由此可知该文件为jpg文件,打开为一张图片
试了下这并不是flag,继续查看TCP流,观察到第9个TCP流有异常
由PK
标识头可知该区域为zip压缩包的十六进制值,复制该段原始数据到Winhex上转换即可得到压缩包,用以上图片获得的密码即可解压
#压缩包密码
Th1s_1s_p4sswd_!!!
flag{3OpWdJ-JP6FzK-koCMAK-VkfWBq-75Un2z}
0x27 被偷走的文件
题目: 文件链接
做法:
用Wireshark打开,追踪TCP流,在第3个TCP流发现关键字flag.rar
,跟踪到第4个TCP流发现16进制数值,直接保存数据为原始数据到新文件flag.rar
,打开发现需要加密,继续追踪TCP流,发现没有后续可疑信息
因此尝试用ARCHPR
暴力破解密码,口令长度为1到8,爆破字符为所有数字,爆破得到密码为5790
,解压得到flag
flag{6fe99a5d03fb01f833ec3caa80358fa3}
0x28 认真你就输了
题目: 文件链接
做法:
打开xls文件发现里面的内容出现乱码,有PK
关键字,想到xls文件也是压缩包文件,于是用解压软件解压,在下方路径找到flag
\10\xl\charts\flag.txt
flag{M9eVfi2Pcs#}
0x29 佛系青年
题目: 文件链接
做法:
打开发现是加密压缩包,但是题目没有给密码提示,尝试用1-8位数字爆破无解,判断应该是伪加密。用Winhex打开,搜索PK
字符串,逐行看看是否有加密位,具体可看前文,然后再Offset为87D9
范围内发现加密位,改为0即可解压
解压后看图片无异样,看下txt文本,发现有“佛曰”,后面的内容是乱码,应该是与佛论禅编码了,在网站第二个文本框输入,然后点参悟佛所言的真意
即可解码
flag{w0_fo_ci_Be1}
0x2A 藏藏藏
题目: 文件链接
做法:
用binwalk
查看图片,发现存在压缩包,用-e
参数提取不出来,图方便就用foremost
分离出压缩包了,解压压缩包并打开里面的文档得到一张二维码,扫码即可得到flag
flag{you are the best!}
0x2B 秘密文件
题目: 文件链接
做法:
做法同上文差不多,rar文件数据在第6个TCP流中,解压密码爆破得到1903
,解压即得flag
flag{d72e5a671aa50fa5f400e5d10eedeaa5}
0x2C 你猜我是个啥
题目: 文件链接
做法:
Winhex打开,发现png文件头,改后缀为png,发现是一张二维码,扫码得到的字符串为乱码,再用Winhex看下文件尾部,得到flag
flag{i_am_fl@g}
0x2D 神奇的二维码
题目: 文件链接
做法:
用binwalk
发现图片存在压缩包,于是使用binwalk
分离出4个rar压缩包,逐个解压
对比716A
文件夹里面的加密压缩包文件,比对和同目录文件的大小一致,但是图片并没有什么异样
encode.txt
文件内容是一段Base64码,转码得到
asdfghjkl1234567890
并不是18394.rar
的解压密码,再看flag.doc
文件,是一段Base64码,解码得到还是Base64编码,应该套了几十层编码,只能说出题人有毛病,最后得到原文,即18394.rar
的解压密码
comEON_YOuAreSOSoS0great
解压后得到一段音频,听起来是摩斯电码,用Audacity分析音频,手打出摩斯电码
转码得到flag,不过要注意是小写
morseisveryveryeasy
如果想要简单点也可以到类似网站进行音频解码
flag{morseisveryveryeasy}
0x2E 一叶障目
题目: 文件链接
做法:
用软件发现不能正常打开图片,判断是修改了图片尺寸,根据前文做法,可以随机
flag{who_knew_serpent_cipher_existed}
0x2D
题目: 文件链接
做法:
flag{who_knew_serpent_cipher_existed}