zima✌和m4x✌带我进线下
GumpKing【solved】
这个题我是嗯跳的,跳到100多就有数字了,但应该有其他简便方法,比如CE修改之类的
所以flag为D0g3{1145141919810}
little_thief【solved】
首先找流量,能从base64里解出密码
所以密码是:s1r_Th1s_k3y
然后用wireshark可以分离出来一个secret.zip
可以用密码s1r_Th1s_k3y解压这个secret.zip得到一个flag.html
这里面全是一大堆废话,但是flag肯定就在这里面,可能用了什么隐写,试了很多方法,最后用wbs43open-win32把flag跑出来了:
所以flag是D0g3{H@ppY_sh@rdlng3pheRe}
RedCoast【unsolved】
获得的附件里有一大堆0和1,完全不知道要干啥,原来是可以转换成zip文件(这些脚本都偷的大佬的)
#1.py
from Crypto.Util.number import *
with open('Signal', 'r') as f:
con =f.read()
print(long_to_bytes(int(con,2)))
# 发现压缩包头的特征,先转化为十进制
#2.py
from Crypto.Util.number import *
with open('Signal', 'r') as f:
con = f.read()
with open('signal.zip', 'wb') as f2:
f2.write(long_to_bytes(int(con,2)))
#得到压缩包。先跑第一个脚本再跑第二个脚本。
打开这个signal.zip,得到625张黑白图片 以及 一个Signal.zip压缩包,很明显这些黑白图片可以组成一个二维码:
from PIL import Image
import os
IMAGES_PATH='signal~\\'# 图片集地址
IMAGES_FORMAT=['.png','.PNG']# 图片格式
IMAGE_WIDTH=100# 每张小图片的大小
IMAGE_HEIGHT=100# 每张小图片的大小
IMAGE_ROW=25# 图片间隔,也就是合并成一张图后,一共有几行
IMAGE_COLUMN=25# 图片间隔,也就是合并成一张图后,一共有几列
IMAGE_SAVE_PATH='final.jpg'# 图片转换后的地址
newimg=Image.new('RGB',(IMAGE_COLUMN * IMAGE_HEIGHT, IMAGE_ROW * IMAGE_WIDTH))
for y in range(25):
for x in range(25):
timg = Image.open(IMAGES_PATH + str(y*IMAGE_COLUMN + x) + '.png')
newimg.paste(timg, (x*IMAGE_WIDTH, y*IMAGE_HEIGHT))
newimg.save('new.png')
扫了之后可以拿到key:
key: 187J3X1&DX3906@!
用这个key可以解压那个Signal.zip,得到一个Signal.txt,放CyberChef中跑,可以得到“三体”中的一张图片,然后把那张图放Stegosolve里勾选全通道可以发现flag
D0g3{W3Lc0Me_T@_E4rth!!}
星星【unsolved】
这个题做到很后面了,可惜还是没做出来,只能说misc这方面能力确实比较欠缺。
首先有个压缩包,里面有三个文件,一个压缩包,一个音频,一张图片,图片和压缩包里的压缩包都要密码,只能先得到这个音频。
GoldWave打开这个音频一眼摩斯:
得到:
.... . .-. . .---- ... -. ----- - -.- . -.---
HERE1SN0TKEY
那这个密码可以解压出那张图片来
foremost可以分离出一个压缩包,我直接把压缩包后缀名改成docx,可以看到一大堆emoji符号,还提示我们已经找到密码了。不是emoji编码,一眼aes-emoji,密码是图片名D0G3
得到的东西base32解码一下后说:
Your Morse code doesn't have to be Morse code,maybe you can use the Morse code by another way,please don't forget passwd add "d0g3andbin"
当时做到这里我就不会了,赛后学习了一下n0wayback他们队的wp:
第一步得到的摩斯如下:
.... . .-. . .---- ... -. ----- - -.- . -.--
d0g3andbin000000100011110001011111110101011
d0g3andbin111111011100001110100000001010100
33 位数可以化成十一位八进制数,二进制转十六进制 478bfabd0g3andbin
我们再用010editor看这个上锁的压缩包
对比 zip 包头 50 4b 03 04 0a 00 00 00
然后就可以编写脚本还原 zip 包了:
f = open("密码不能太长哦.zip","rb")
o = open("out.zip","wb")
data = f.read()
for i in range(len(data)):
o.write(bytes([(5-data[i])%256]))
总结
做misc的经验还是不足,需要多加学习。