- Crypto
- Misc
- 0x00 签到题
- 0x01 这是一张单纯的图片
- 0x02 隐写
- 0x03 talent
- 0x04 眼见非实(ISCCCTF)
- 0x05 啊哒
- 0x06 又一张图片,还单纯吗
- 0x07 猜
- 0x08 宽带信息泄露
- 0x09 隐写2
- 0x0A 多种方法解决
- 0x0B 闪的好快
- 0x0C come_game
- 0x0D 白哥的鸽子
- 0x0E linux(未做)
- 0x0F 隐写3
- 0x10 做个游戏(08067CTF)
- 0x11 想蹭网先解开密码
- 0x12 Linux2(未做)
- 0x13 账号被盗了(题目网站打不开)
- 0x14 细心的大象
- 0x15 爆照(08067CTF)
- 0x16 猫片(安恒)
- 0x17 多彩(文件损坏)
- 0x18 旋转跳跃
- 0x19 普通的二维码
- 0x1A 乌云邀请码
- 0x1B 神秘的文件
- 0x1C 论剑
- 0x1D 图穷匕见
- 0x1E convert
- 0x1F 听首音乐
- 0x20 好多数值
- 0x21 很普通的数独(ISCCCTF)
- 0x22 PEN_AND_APPLE(文件损坏)
- 0x23 color
- 0x24 怀疑人生
- 0x25 红绿灯(待重写代码)
- 0x26不简单的压缩包(做到一半吐了)
- 0x27 一枝独秀
- 0x30 妹子的陌陌(AES到底用什么工具好)
Crypto
托马斯.杰斐逊(未做完)
1: <ZWAXJGDLUBVIQHKYPNTCRMOSFE <2: <KPBELNACZDTRXMJQOYHGVSFUWI <3: <BDMAIZVRNSJUWFHTEQGYXPLOCK <4: <RPLNDVHGFCUKTEBSXQYIZMJWAO <5: <IHFRLABEUOTSGJVDKCPMNZQWXY <6: <AMKGHIWPNYCJBFZDRUSLOQXVET <7: <GWTHSPYBXIZULVKMRAFDCEONJQ <8: <NOZUTWDCVRJLXKISEFAPMYGHBQ <9: <QWATDSRFHENYVUBMCOIKZGJXPL <10: <WABMCXPLTDSRJQZGOIKFHENYVU <11: <XPLTDAOIKFZGHENYSRUBMCQWVJ <12: <TDSWAYXPLVUBOIKZGJRFHENMCQ <13: <BMCSRFHLTDENQWAOXPYVUIKZGJ <14: <XPHKZGJTDSENYVUBMLAOIRFCQW <密钥: 2,5,1,3,6,4,9,7,8,14,10,13,11,12密文:HCBTSXWCRQGLESflag格式 flag{你解密的内容}
Misc
0x00 签到题
扫码得到flag
0x01 这是一张单纯的图片
010editor打开,发现图片最后有一串#&字符,是unicode,转成ascii即可

key{you are right}
0x02 隐写
下载下来是一个压缩包,解压开是一个png图片:

(固定)八个字节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计算得到。
————————————————
原文链接:https://blog.csdn.net/qq_41173457/article/details/81393780
如图,01F4代表宽,01A4代表高,修改01A4为01F4即可


BUGKU{a1e5aSA}
0x03 talent
流量分析,输入tcp过滤,按长度由大到小看,第二个就是flag:
0000 00 0c 29 26 7e 0e 00 0c 29 84 86 5f 08 00 45 00 ..)&~…).._..E.
0010 00 4e 07 b0 40 00 80 06 00 00 c0 a8 dd 80 c0 a8 .N..@………..
0020 dd a4 04 7a 00 17 46 01 d4 4e 68 f0 2a 7a 50 18 …z..F..Nh.*zP.
0030 01 00 3c b7 00 00 66 6c 61 67 7b 64 33 31 36 37 ..<…flag{d3167
0040 35 39 63 32 38 31 62 66 39 32 35 64 36 30 30 62 59c281bf925d600b
0050 65 36 39 38 61 34 39 37 33 64 35 7d e698a4973d5}
flag{d316759c281bf925d600be698a4973d5}
0x04 眼见非实(ISCCCTF)
拿到一个文件名为zip的无后缀文件,010editor分析,开头是pk,看起来确实有zip。
改成zip以后解压,发现里面有一个眼见非实.docx
打开后显示:

用010editor打开,文件开头依然是zip头,改成zip格式解压。
在其中word文件夹里的document.xml中找到了flag:

flag{F1@g}
0x05 啊哒
分析后发现图片中有一个zip文件包,直接用binwalk -e分离即可

得到35695.zip,里面包含一个flag.txt,但是提示有密码。
输入35695后提示密码错误
原来以为是5位数爆破,结果也没找到。回过头看原来的图片,exif信息中有东西:

解码后得到压缩包解压密码:

解压后拿到flag:
flag{3XiF_iNf0rM@ti0n}
0x06 又一张图片,还单纯吗
遇事不决先看exif,再binwalk,发现里面有好几个jepg。binwalk -e无法分离。
用foremost成功分离,得到flag
另一个方法是放到010editor中,9.0版本010editor自己有插件分析文件。发现jepg数据后有一些无法识别的padding数据,开头也是jepg的开头。因此把后面的数据复制出来保存为jpg,一样可以得到flag图片:

falg{NSCTF_e6532a34928a3d1dadd0b049d5a3cc57}
0x07 猜
提示flag格式key{某人名字全拼},图片为:

猜测就是改图像高度,然后看出来是哪个明星,填到flag里。所以做ctf题还需要认识明星吗……
然并卵

我吐了,搜了writeup说图像搜索找到发现是刘亦菲
做的时候默认没网络,确实做不出。另外这不应该放在社工题里吗……
key{liuyifei}
0x08 宽带信息泄露
下载下来是conf.bin,搜了一下是路由器文件,要用专门的软件打开
吾爱破解下载了一个Routerpassview1.88汉化绿色版(安全性不保证)
打开后搜索username,得到flag:

0x09 隐写2
exif信息中有提示:

然后binwalk分离出来一flag.zip包和一个图片:

感觉进入了坑爹脑洞时间。
反正提示密码是三位数,用archpr暴力破解,得到密码871。解压开发现里面是一张图片。常规套路试了一下(exif/binwalk/setgsolve)均无发现。
放到010editor中查看二进制数据,在最后找到flag:
所以题目讲故事是想干啥,吓我一跳

f1@g{eTB1IEFyZSBhIGhAY2tlciE=}
中间部分数据base64解密后得到:
f1@g{y0u Are a h@cker!}
0x0A 多种方法解决
下载压缩包,解压后发现一个key.exe,双击无法运行。010editor打开后:

告诉我们是jpg,数据由base64加密,于是解密后保存为jpg:
python脚本如下:
import base64
with open("1.txt","r") as file1:
a=base64.b64decode(file1.read())
print(a)
with open("result.jpg","wb+") as file2:
file2.write(a)
print("done")
得到一个二维码图片,扫码可得

KEY{dca57f966e4e4e31fd5b15417da63269}
0x0B 闪的好快
得到一个gif,几个二维码来回跳动。用软件分离gif每一帧即可。用的是stegsolve->analyse->image viewer
有18个二维码,一个一个扫吧,得到
SYC{F1aSh_so_f4sT}
0x0C come_game
玩了一下,发现生成了一个deathtime文件和一个save1文件
发现save文件里这个地方代表存档的关数,改成5即可


FLAG{6E23F259D98DF153}
后面发现要提交SYC{6E23F259D98DF153}
0x0D 白哥的鸽子
拿到的是一个名称为jpg的无后缀文件
010editor里查看,发现有jpg头,修改后缀为.jpg。用010editor打开,插件自动分析了一下。发现最后又unknown padding:

得到:fg2ivyo}l{2s3_o@aw__rcl@
{}位置乱了,估计是栅栏密码
得到:flag{w22_is_v3ry_cool}
0x0E linux(未做)
0x0F 隐写3
修改高度得到flag

flag{He1l0_d4_ba1}
0x10 做个游戏(08067CTF)
jar包实际上就是一个zip,解压一个文件一个文件看。在plane文件夹的PlaneGameFrame.class中找到flag:

flag{RGFqaURhbGlfSmlud2FuQ2hpamk=}
base64解密后得到:
flag{DajiDali_JinwanChiji}
0x11 想蹭网先解开密码
有一个wifi数据包,根据前面确定的手机号,用crunch生成字典。
-t表示使用固定模式
-o表示输出到固定位置

然后aircrack命令,借助包和生成的字典进行破解
aircrack-ng wifi.cap -w aaa.txt

找到了密码:13810407686
0x12 Linux2(未做)
0x13 账号被盗了(题目网站打不开)
看了一下writeup,先抓包改包,拿到123.exe
后面这一步比较难想到,使用wireshark抓包看123.exe流量情况
从里面找到user和password。以前看到exe总想到逆向啥的,新思路。
0x14 细心的大象
打开压缩包发现crc有问题

二进制分析发现图片最后有个rar包,里面有个2.png,但是压缩包有密码

回头查看1.jpg,发现exif信息内有东西:

base64解密后得到:MSDS456ASD123zz
用此密码解压压缩包,得到一张图片。修改高度拿到flag:

BUGKU{a1e5aSA}
0x15 爆照(08067CTF)
二次元动漫图片,感觉还挺眼熟,缘之空?
010editor看了一下,后面有一串zip字符串。分离开解压,发现有8个文件还有一个提示

看了一下二进制数据,从第二个文件开始,都是jpg,改成jpg以后发现都是gif里的一帧。其中88含有一个二维码,扫描以后得到:
- bilibili
后面发现没有后缀的直接放linux下可以直接预览0-0
发现8888中有压缩包

解压后得到二维码,信息是:
- panama
第一幅图和最后一幅图的二进制代码很奇怪,里面有很多垃圾信息。888中开头有很长的exif信息。
于是888查看属性,发现base64密文:

解密后得到:
- silisili
题目提示flag格式:flag格式 flag{xxx_xxx_xxx}
flag{bilibili_silisili_panama}
0x16 猫片(安恒)
hint:LSB BGR NTFS
直接就告诉你lbs加密,bgr顺序解密了……
下载下来改成png后缀,用setgsolve打开分析,发现三个0通道都有东西。
于是勾选rgb0通道,模式选择BGR,显示有png,导出却发现无法打开。
于是分析二进制:

png头是89 50 4E 47,于是把多出来的删掉,打开发现是半个二维码。
那肯定是改高度了

修改这四个字节,这里就是高度,成功拿到二维码。

扫描完竟然是一个网盘???
https://pan.baidu.com/s/1pLT2J4f
下载了一个压缩包,解压后报错:

但是仍然得到一个flag.txt,告诉我们flag不在这里:

那只能是压缩包里藏了东西,查看二进制

上面这一段就是flag.txt,那下面其实还有另一段flag。咋还原呢。
NTF流隐写——从来没听过的隐写方式,粗略理解为windows下依附于主文件的一个隐藏文件
具体可看——>NTFS文件隐写
提示里还有一个ntf,用NtfsStreamsEditor2查看flag.rar解压的文件夹,得到一个flag.pyc

导出pyc文件,https://tool.lu/pyc/解密后,得到python代码
import base64
def encode():
flag = '*************'
ciphertext = []
for i in range(len(flag)):
s = chr(i ^ ord(flag[i]))
if i % 2 == 0:
s = ord(s) + 10
else:
s = ord(s) - 10
ciphertext.append(str(s))
return ciphertext[::-1] #做reserve
ciphertext = ['96', '65', '93', '123', '91', '97', '22', '93', '70', '102',
'94', '132', '46', '112', '64', '97', '88', '80', '82', '137',
'90', '109', '99', '112']
就是知道算法和加密后的ciphertext,求flag。
import base64
flag = []
result = ''
ciphertext = [96, 65, 93, 123, 91, 97, 22, 93, 70, 102,
94, 132, 46, 112, 64, 97, 88, 80, 82, 137,
90, 109, 99, 112] #总共24位
ciphertext = ciphertext[::-1] #注意题目中最后返回值做了reserve
for i in range(len(ciphertext)):
if i % 2 == 0:
ciphertext[i] -=10
else:
ciphertext[i] +=10
#现在ciphertext已经调整过来了
for i in range(len(ciphertext)):
flag.append(i^ciphertext[i])
for i in range(len(flag)):
result += chr(flag[i])
print(flag)
print(result)
一开始没注意题目中做了翻转,看代码不仔细。

flag{Y@e_Cl3veR_C1Ever!}
0x17 多彩(文件损坏)
下载下来一个lipstick.png,口红唇膏?
常规三板斧,exif/二进制/stegsolve
果然stegsolve找到了东西:

red0通道和1通道有ysl图样,而且注意左上角,在rgb三个的0通道,左上角都有东西!!!
那就用analyse中的data extract功能看一下lsb隐写情况

找到了一个zip包,savebin保存为zip。打开发现报错,用010editor打开,发现zip文件头50 4B 03 04前面有几个垃圾数据,删掉。

然后解压发现flag.txt损坏,我就卡在这步了,没有传说中的密码。文件提示损坏,无法做下去。
0x18 旋转跳跃
熟悉的声音中貌似又隐藏着啥,key:syclovergeek
有密钥有mp3,岂不是……
反正我只知道用一个软件解码Mp3steno。
听了音乐以后心里毫无感情,甚至还有点想笑
用软件一跑直接就拿到flag了(对了,本题在虚拟机共享文件夹下跑总不成功,还是尽量不要放到共享文件夹下运行处理)

SYC{Mp3_B15b1uBiu_W0W}
0x19 普通的二维码
解压开发现一个二维码,扫描:

二进制查看,最后有一串神秘代码
146154141147173110141166145137171060125137120171137163143162151160164137117164143137124157137124145156137101163143151151041175@xjseck!
最大值不超过8,8进制。146/154/……为一组
自己写了个脚本,能跑出来但是太丑陋了,不发了,核心是8进制为0o开头,int(‘0o11’,8)转换成十进制
网上代码是:
f=open('1.txt')
temp=[]
while True:
k=f.read(3)
if k:
temp.append(k)
else:
break
f.close()
for i in temp:
num='0o'+i
num=int(num,base=0)
num=chr(num)
print(num,end='')
————————————————
版权声明:本文为CSDN博主「shadow_pedestrian」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_38807738/article/details/84799775
得到flag:
flag{Have_y0U_Py_script_Otc_To_Ten_Ascii!}
0x1A 乌云邀请码
拿到题目解压出一个png

作为杂项题,当然是看图片有没有什么隐写。
exif、二进制、修改宽高都没出现什么问题。
stegsolve查看,及其心细的人能发现异样:

RGB三个0通道都有这个奇怪图案,其他通道都没有,那只能是lsb隐写了。用Analyse中的Data Extract功能分析

flag{Png_Lsb_Y0u_K0nw!}
0x1B 神秘的文件
解压开来发现一个logo.png文件和一个flag.zip包。注意到flag.zip中有两个文件:

其中那个logo.png和我们之前获得的名字相同,第一反应考虑明文爆破。试着压缩一下logo.png看看crc32是否相同,验证一下:

CRC32相同,说明二者是同一个文件。用ARCHPR爆破

得到密码q1w2e3r4
解压后有一个docx文件,明明没有字符,却被word识别为语法错误:

docx文件其实就是一个zip包,后缀改成.zip以后就可以解压。
在最最常见的word/document.xml文件夹下,果然在上图那个位置找到了隐藏的信息:

好吧,提交上去果然不是flag
结果在docProps文件夹中找到了flag.txt

里面有一串base64加密的信息:ZmxhZ3tkMGNYXzFzX3ppUF9maWxlfQ==
解密后得到:
flag{d0cX_1s_ziP_file}
0x1C 论剑
题目提示:
剑客
十年磨一剑,霜刃未曾试。
今日把示君,谁有不平事。
010editor打开,发现在图片结束后,有一串二进制存在。二进制之后还有一大段数据,以FF D9结束,怀疑这里是一个二进制密码和一个图片。

先把二进制解码了:

得到mynameiskey!!!hhh
linux下foremost成功分离,得到两张外形很相似的图片:

用setesolve的image combine功能试了一下,各种处理并没有得出什么东西。
图片很细长,于是改一下图片宽高吧,jpg先寻找FFC2,3字节后即图片的高与宽信息。

发现原图增加高度后有信息。

后面就卡住了,看了writeup以后才发现,主要要看到二进制后面的数据,来修复文件头
数据为 7B BC AF 27 1C
7z文件头为37 7A BC AF 27 1C
修改完毕后解压,解压密码为上面2进制文件解密结果:mynameiskey!!!hhh
解压后得到新图片,同样修改高度:

上面是原图片,下面是新图片。综合一下就是答案
flag{666C61677B6D795F6E616D655F482121487D}
提交上去报错,原来还有一部是base16解密。
我还以为我抄错了
flag{my_name_H!!H}
0x1D 图穷匕见
查看exif信息,得到一个提示:

010editor打开,看二进制文件,发现图片后面还有一长串数据:

复制出来,用notepad++的插件由16进制转换成ascii:

得到了坐标,和之前画图的提示对应起来了。
kali 中用gnuplot读取这个txt即可,命令为:
gnuplot
plot ‘1.txt’
注意,txt中坐标的格式如图

生成二维码,扫码之后得到flag:

flag{40fc0a979f759c8892f4dc045e28b820}
0x1E convert
打开1.txt发现是一堆二进制,放入工具中转成16进制。

然后放入notepad++中用插件把16进制转换为ascii:

发现是一个rar
用010editor把16进制内容导入进去(文件—导入16进制—-选择保存了16进制信息的txt文件),保存为rar后缀。
解压后发现一张png图片,exif中有base64信息

解密后得到flag:
flag{01a25ea3fd6349c6e635a1d0196e75fb}
0x1F 听首音乐
用stego100打开,发现有左声道波形图很古怪

估计是摩斯密码或者转成二进制(不过二进制的话一般每段数据长度相等)?
试试摩斯密码

..... -... -.-. ----. ..--- ..... -.... ....- ----. -.-. -... ----- .---- ---.. ---.. ..-. ..... ..--- . -.... .---- --... -.. --... ----- ----. ..--- ----. .---- ----. .---- -.-.
5BC925649CB0188F52E617D70929191C
0x20 好多数值
一个txt文件,开头好多255。考虑到255是十六进制的FF,猜测是要把所有的数值换成十六进制
百度以后发现是rgb值。三个一组,似乎相当有道理。
然后需要分析图片大小,总共61366行,分解一下
| Result: | ||
|---|---|---|
| status (?) | digits | number |
| FF | 5 (show) | 61366 = 2 · 61 · 503 |
要么是122x503,要么是61x1006(或者反过来)
python脚本确实不会写,借用网上的:
from PIL import Image
x = 503 #x坐标 通过对txt里的行数进行整数分解
y = 122 #y坐标 x*y = 行数
im = Image.new("RGB",(x,y))#创建图片
file = open('1.txt') #打开rbg值文件
#通过一个个rgb点生成图片
for i in range(0,x):
for j in range(0,y):
line = file.readline()#获取一行
rgb = line.split(",")#分离rgb
im.putpixel((i,j),(int(rgb[0]),int(rgb[1]),int(rgb[2])))#rgb转化为像素
im.show()
————————————————
原文链接:https://blog.csdn.net/perplexlty/article/details/83314633

flag{youc@n’tseeme}
0x21 很普通的数独(ISCCCTF)
二进制分析发现是zip文件,解压后得到25张png,每张上有一个9x9的数独。然后下面都是复现大佬题解:

排列成5*5,发现1/5/21有明显特征:

二维码!而且1/5/21顺序错了,21在左上角,1在右上角,5在左下角。
把有数字的转换成1,没数字的转成0。python脚本解密:
from PIL import Image
x = 45
y = 45
im = Image.new('RGB', (x, y))
white = (255, 255, 255)
black = (0, 0, 0)
with open('file.txt') as f:
for i in range(x):
ff = f.readline()
for j in range(y):
if ff[j] == '1':
im.putpixel((i, j), black)
else:
im.putpixel((i, j), white)
im.save("1.jpg")
010101数据为:
111111101010101000101000001111110000101111111
100000101100111101010011101100011001001000001
101110101110011111010011111101000101001011101
101110101101100010001010000011110001101011101
101110100011100100001111101111111011101011101
100000101100100000011000100001110100001000001
111111101010101010101010101010101011101111111
000000000011001101001000110100110011100000000
110011100100100001111111100100101000000101111
101001001011111111101110101011110101101001100
100000111100100100000110001101001101010001010
001100010011010001010011000100000010110010000
010110101010001111110100011101001110101101111
100011000100011100111011101101100101101110001
001100110100000000010010000111100101101011010
101000001011010111110011011111101001110100011
110111110111011001101100010100001110000100000
110101000010101000011101101101110101101001100
010011111110001011111010001000011011101101100
011001011001010101100011110101001100001010010
010111111111101011111111101101101111111111100
011110001100000100001000101000100100100011110
111110101110011100111010110100110100101010010
110010001011101011101000111100000011100010000
101011111011100111101111111100001010111110010
110100011000111000100111101101111101000100010
111101111110001001000011010110001111110111110
011001010101000110010100010001000101101010001
011101110101101101100100001101101000111101001
110110001001101100010101101111110100101100110
000011100111000000000100001010101111100010010
111010010011110011101110010100001011111010010
101001100010111111110100000100001010101010100
000010011001001101110101001111100101111101101
000010111101110001101011000001000101110100110
011110011010100010100000011011000001110010000
100110100100001101111111101100101110111110011
000000001111110101101000101011100100100011010
111111100011111011011010101101110011101011110
100000101110101101101000111110010001100010001
101110101011100001111111101101001000111111011
101110100110111101101000001001101100011101101
101110100000011101100001101010110010010010001
100000101011001011111011001011000011010110000
111111101010101001111011110101101110000101101
得到二维码,扫描后得到:
Vm0xd1NtUXlWa1pPVldoVFlUSlNjRlJVVGtOamJGWnlWMjFHVlUxV1ZqTldNakZIWVcxS1IxTnNhRmhoTVZweVdWUkdXbVZHWkhOWGJGcHBWa1paZWxaclpEUmhNVXBYVW14V2FHVnFRVGs9
base64decode

重复四五次decode,才得到flag:
flag{y0ud1any1s1}
0x22 PEN_AND_APPLE(文件损坏)
是一个mp4文件,
//隐藏方法: type flag.png>pen_and_apple.mp4 //查看方法: dir /r
使用ntfsstreamseditor.exe或AlternateStreamView.exe扫描并分离
应该是bugku文件损坏了,找不到。
自己试了一下,隐藏一句话没问题,隐藏一个flag.txt却总是失败。不知道为什么。总之用工具找不到隐写的东西,至于flag网上有。

0x23 color
解压开发现是不同颜色色块图片。看了一下exif和二进制没啥问题,放到stegsolve中,发现情况:

依次看下来,得到make metaii(实际上是make me tall),改高度

把图案转成二进制,得到7组二维码,每组取同样位置的组合起来可以解密(偷懒没复现,抄别人的):
c1 = '11111111010111101111'
c2 = '11111011111110111111'
c3 = '00001100101010110001'
c4 = '01001010010000001101'
c5 = '11010011011101010111'
c6 = '10011011011010110110'
c7 = '00111001101101111101'
flag = ''
for i in range(0,20):
c = c1[i]+c2[i]+c3[i]+c4[i]+c5[i]+c6[i]+c7[i]
flag += chr(int(c,2))
print flag
flag{Png1n7erEs7iof}
0x24 怀疑人生
改成zip解压,得到三个文件:

- 二维码内容为:
12580},估计是flag最后几位
zip包有密码,先看jpg。
- jpg二进制中,jpg结尾后包含一个zip包的开头,把zip数据导出来保存为zip文件。
解压后得到一个ctf2.txt:

百度以后发现是ook编码,在线解码

得到3oD54e
本来以为这一部分已经拿到了,结果大坑。这个是base58加密信息!

真实数据是:misc
- 再看第一个,没有别的信息了,于是用弱口令字典暴力破解(archpr自带字典)

得到一串base64数据,解码后得到unicode,在解码得到flag:
XHU2Nlx1NmNcdTYxXHU2N1x1N2JcdTY4XHU2MVx1NjNcdTZiXHU2NVx1NzI=
\u66\u6c\u61\u67\u7b\u68\u61\u63\u6b\u65\u72
flag{hacker
和前面两端组合起来:
flag{hackermisc12580}
0x25 红绿灯(待重写代码)
gif红绿灯,考虑是红绿灯表示二进制数据(或者摩斯密码)
用stegsolve打开,发现一共有1168帧,手动是没办法了。

脚本不会写,看了大佬的,把python2改成python3了,代码如下:
# -*- coding:utf-8 -*-
from PIL import Image
#前面这一段是保存为light0.png/light1.png……
savepath='E:\\ctfCoures\\WriteUp\\bugku题目\\gif\\'
im=Image.open('E:\\ctfCoures\\WriteUp\\bugku题目\\Traffic_Light.gif')
try:
#tell是帧数,而seek是取当前帧数的图片。
im.save(savepath+'light{0}.png'.format(im.tell())) #这个好厉害,用前面{}的内容会被format替代,0指代formate中的第几个参数。所以生成的图片名称为light0/light1/light2……,萌新第一次学到这种用法
while True:
im.seek(im.tell()+1) #当seek读到最后会返回EOFError,为了程序继续运行,用了try catch
im.save(savepath+'light{0}.png'.format(im.tell()))
except:
pass
#开始读取,识别到红色则变为1,识别绿色变为0
flag=""
for i in range(1168):
image=Image.open(savepath+'light'+str(i)+'.png')
#print image.getpixel((115,55))#输出颜色值
#print image.getpixel((115,145))
if image.getpixel((115,55))==251:
flag+=str(1)
elif image.getpixel((115,145))==186:
flag+=str(0)
flag= hex(int(flag,2))[2:] #二进制转字符串
flag = bytes.fromhex(flag) #转成ascii形式的二进制
print(flag.decode('utf-8'))
原理很简单,代码也不是很难,不过大佬写的很好。python完全不熟练,理解了一下代码看了一下PIL手册完事。
flag{Pl34s3_p4y_4tt3nt10n_t0_tr4ff1c_s4f3ty_wh3n_y0u_4r3_0uts1d3}
0x26不简单的压缩包(做到一半吐了)
改成zip后缀,解压发现有密码,而且提示:

感觉zip文件有问题。二进制看了一下,010editor插件还是牛逼,感觉内部还有一个zip包。放到kali里用binwalk分析,果然有两个zip包:


两个压缩文件都是有密码的,内容是tingshuo.txt,而txt和swf都是空的。到这里没思路了,于是决定换foremost试试。
神奇的是foremost分离的时候,提示了flag.swf2的内容,但是却没有分理出这个文件:

总之后面就是暴力破解0的密码,为0,然后提示密码50位。暴力破另一个密码,50个a。得到.swf小游戏,最后是反编译,在文件里找到一串十六进制,转成flag
工具:
于是看了大神的writeup(上面友情连接),下载了个JPEXS Free Flash Decompiler
https://github.com/jindrapetrik/jpexs-decompiler/releases/tag/version11.2.0
0x27 一枝独秀
题目提示:翻过四个栅栏
看提示似乎是栅栏密码,结果解压开来发现只有一个破损的一枝独秀.png文件。查看zip包二进制文件,发现隐藏了一个jpg文件

对zip包进行foremost、binwalk,无法分离。
打开一枝独秀.png,发现有zip头,改成zip后缀查看:

而且压缩包有密码,没别的信息了,archpr暴力破解。用的是kali自带wordlist下的rockyou.txt字典,一秒爆出密码12345678:

打开发现图片全是同一张,彼岸花的图案,吓人的很。
题目名为一枝独秀,意思在一百多张图片里有一张不一样?

手动放到BCompare里,从后往前,81有问题!(一般是从后往前找,因为出题人很坑)

exif值确实也有不一样,文件大小也不一样,原来看文件大小就行……
用stegsolve打开,发现rgb0通道有隐藏。

试了一下lsb隐写,找不到东西
最后发现是用jphs解密,密码就是exif里面的flowers:

导出后查看二进制,发现是zip,解压后得到参悟佛法.txt:

似乎是提示我们用四层栅栏解密,可是解不出来。然后发现……
竟然是一个脑洞加密方式:http://www.keyfc.net/bbs/tools/tudoucode.aspx

H-hDs10OZL3lhIZZbeRSbbbVRZNm32W2X33mGm3Txt999RdV9hx0
四层栅栏,第一次得到:

HINT-ZmxhZ3tDb29seW91R290SXROb3dZb3VLbm93VGhlRmxhZ30
试了一下继续栅栏,不行。于是base64decode,得到flag:
flag{CoolyouGotItNowYouKnowTheFlag}
0x30 妹子的陌陌(AES到底用什么工具好)
这题做的人比较多
010editor一看二进制,jpg后面有一个rar文件。打开rar发现里面有一个momo.txt,保存下来解压,提示需要密码。
看rar的二进制数据,很短,基本隐藏不了东西了。stegsolve看了jpg,也没啥问题。
暴力破解吧破不出来
然后搜了一下,原来图片上的文字就是密码,解压得到:

看这么长的描述就感觉非常非常坑爹了。
前面那个明显是摩斯密码,结果发现无法解密。
那看后面的吧,直接打不开网站,试试base64也不行。
aes用了好几个工具都无法解密,看了writeup才用网站解开了。
结果发现bugku给的网址又上不去了,服务器崩了。
反正看writeup,上去就给你一个二维码,我用qr_research直接可以扫出来。

KEY{nitmzhen6}
