Misc

杂项签到

010 editor 搜索63 74 66 73 68 6f 77
2023-12-03T222847

flag

ctfshow{a62b0b55682d81f7f652b26147c49040}

损坏的压缩包

010 editor 打开发现是 PNG 文件
将.zip 修改为 .png
2023-12-03T223213

flag

ctfshow{e19efe2eb86f10ccd7ca362110903c05}

谜之栅栏

文件提示找不同
用010 editor打开,Ctrl+M进行比较
2023-12-03T223714
根据题目名称,栅栏密码
2023-12-03T225636

flag

ctfshow{f0a6a0b721cfb949a7fb55ab5d8d210a}

你会数数吗

打开文件是一串字符,根据题目名称,猜测是词频统计
2023-12-03T230348

flag

ctfshow{a1b2d3e4g56i7j8k9l0}

你会异或吗

png文件,用010 editor打开,发现内容应该是被异或过了
png文件头为89 50 4E 47 0D 0A 1A 0A
而题目文件是D9 00 1E 17 5D 5A 4A 5A
计算一下应该是异或50的结果
全选所有数据在010 editor的Tools中选择Hex operations—Binary Xor
操作数填50,还原后
2023-12-03T231916
得到flag
2023-12-03T231934

flag

ctfshow{030d0f5073ab4681d30866d1fdf10ab1}

flag一分为二

用stegsolve打开图片
用file format检查一下
2023-12-03T234435
注意到CRC和Calculated CRC不同
很大概率是图片尺寸被修改了,用工具一把梭
PNG图片_宽高一把梭工具
得到flag后半部分SecondP@rTMikumiku~}
2023-12-03T234750
前半部分猜测是盲水印
Java盲水印
用cosin方式(-c)解析会发现有字但不清楚,所有尝试傅里叶变换(-f)

1
java -jar BlindWatermark.jar decode -f flag407.png blind_flag.png

2023-12-04T003629
得到前半部分ctfshow{FirstP@RT
或者用吾爱破解的工具
盲水印提取工具
备用链接
2023-12-04T004729

flag

ctfshow{FirstP@RTSecondP@rTMikumiku~}

我是谁??

对照剪影找图片,费眼睛,耐心就行了
官方脚本梭也行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
import requests
from lxml import html
import cv2
import numpy as np
import json


url="http://abaee580-2d5a-4240-a4b4-e86ad8109cc5.challenge.ctf.show/"

sess=requests.session()

all_girl=sess.get(url+'/static/all_girl.png').content

with open('all_girl.png','wb')as f:
f.write(all_girl)

big_pic=cv2.imdecode(np.fromfile('all_girl.png', dtype=np.uint8), cv2.IMREAD_UNCHANGED)
big_pic=big_pic[50:,50:,:]
image_alpha = big_pic[:, :, 3]
mask_img=np.zeros((big_pic.shape[0],big_pic.shape[1]), np.uint8)
mask_img[np.where(image_alpha == 0)] = 255

cv2.imwrite('big.png',mask_img)



def answer_one(sess):
#获取视频文件
response=sess.get(url+'/check')
if 'ctfshow{' in response.text:
print(response.text)
exit(0)
tree=html.fromstring(response.text)
element=tree.xpath('//source[@id="vsource"]')
video_path=element[0].get('src')
video_bin=sess.get(url+video_path).content
with open('Question.mp4','wb')as f:
f.write(video_bin)
#获取有效帧
video = cv2.VideoCapture('Question.mp4')
frame=0
while frame<=55:
res, image = video.read()
frame+=1
#cv2.imwrite('temp.png',image)
video.release()
#获取剪影
image=image[100:400,250:500]
gray_image=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
#cv2.imwrite('gray_image.png',gray_image)
temp = np.zeros((300, 250), np.uint8)
temp[np.where(gray_image>=128)]=255
#去白边
temp = temp[[not np.all(temp[i] == 255) for i in range(temp.shape[0])], :]
temp = temp[:, [not np.all(temp[:, i] == 255) for i in range(temp.shape[1])]]
#缩放至合适大小,肉眼大致判断是1.2倍,不一定准
temp = cv2.resize(temp,None,fx=1.2,fy=1.2)
#查找位置
res =cv2.matchTemplate( mask_img,temp,cv2.TM_CCOEFF_NORMED)
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)
x,y=int(max_loc[0]/192),int(max_loc[1]/288)#为什么是192和288,因为大图去掉标题栏就是1920*2880
guess='ABCDEFGHIJ'[y]+'0123456789'[x]
print(f'guess:{guess}')
#传答案
response=sess.get(url+'/submit?guess='+guess)
r=json.loads(response.text)
if r['result']:
print('guess right!')
return True
else:
print('guess wrong!')
return False

i=1

while i<=31:
print(f'Round:{i}')
if answer_one(sess):
i+=1
else:
i=1

You and me

两个图片一眼盲水印
用B神的工具梭
2023-12-04T010848
2023-12-04T010856

flag

ctfshow{CDEASEFFR8846}

7.1.05

会不了一点
:sob:
跟着WP走了一遍
先搜索.sav是什么格式,了解到是内存数据文件
猜测可能是内存取证或者游戏存档啥的
先用strings命令检索一下

1
strings flagInHere.SAV >1.txt

两个有用的信息
2023-12-05T202103
2023-12-05T202122
第二章图显示了几个DLC链接,猜测是某款游戏
搜索一下是一款译名叫“金融帝国实验室”的游戏
题目是7.1.05应该是版本
搜索Capitalism Lab v.7.1.05,找到毛子的下载站
Capitalism Lab v.7.1.05 + 5 DLC + 2 MOD RUS
汉化包
如图一将.sav文件存至C:\Users\Tree\Documents\My Games\Capitalism Lab\SAVE目录下,打开游戏,加载存档,
2023-12-05T222705
左下角提示研发中心 long_flag_in_R&D。猜测是研发中心的某个项目
查看研发中心,发现每个研发中心的研发部门的数量都不一样,将其按照从左下向右上
2023-12-05T223437
得到9794598612147726669494087179782678475623253058262173164497949649813569030779924086502049160804
再根据董事长名字long_to_bytes,将数字转成二进制字节数据

1
2
3
from Crypto.Util.number import long_to_bytes
print(long_to_bytes(9794598612147726669494087179782678475623253058262173164497949649813569030779924086502049160804))
# b'\x01,\x84(\xfa,\xe7]FI&\x84?\x9a\x8b\xb5\xaf\xad\xe9ar\xe5\xf8Wk\xeb\x15\xc1\x08\x03/\x9aUo\xc2;ek\x9ed'

不对试试逆向

1
2
3
from Crypto.Util.number import bytes_to_long
print(long_to_bytes(4080619402056804299770309653189469497944613712628503523265748762879717804949666277412168954979))
# b'}3maG_d00G_0S_s1_baL_ms1lat1paC{wohsftc'

再逆向一下 得到ctfshow{Cap1tal1sm_Lab_1s_S0_G00d_Gam3}

flag

ctfshow{Cap1tal1sm_Lab_1s_S0_G00d_Gam3}

黑丝白丝还有什么丝?

提示为摩斯密码 白丝为.黑丝为-转场为/
对着视频冲,啊不是对着视频敲.--/....-/-./-/-/-----/-.../...--/--/---/.-././-.-./..-/-/.
解析得到w4ntt0b3morecute
2023-12-06T231814

flag

ctfshow{w4ntt0b3morecute}

我吐了你随意

0宽字符隐写
2023-12-06T234945
或者可以试试zwsp-steg-py库
zwsp-steg-py

flag

ctfshow{OP_is_for_Over_Power}

这是个什么文件?

加密的压缩包,想着爆破,没出
一番搜索了解到可能是压缩包伪加密
把压缩源文件目录区的全局方式位标记由09 00改为00 00即可
2023-12-07T000916
解压出来的的文件无后缀名,用010 editor打开看看
2023-12-07T001113
逆向手的直觉告诉我大概率是pyc文件
pycdc梭一下
2023-12-07T001225

1
2
flag=bytes([99,116,102,115,104,111,119,123,99,100,106,110,106,100,95,53,54,53,102,95,71,67,68,72,95,107,99,114,105,109,125]).decode()
print(flag)

运行得ctfshow{cdjnjd_565f_GCDH_kcrim}

flag

ctfshow{cdjnjd_565f_GCDH_kcrim}

抽象画

打开txt有点像base,直接cyberchef梭
2023-12-07T180606
应该是 base58->base32->base64
得到16进制信息,写入010 editor看看
新建 16进制文件,ctrl+shift+v粘贴
2023-12-07T181121
保存为png文件
2023-12-07T181227
搜索一下知道这是一种语言npiet
nipet
执行一下得到flag
2023-12-07T184718

flag

ctfshow{dec8de_frejnv_frejer89}

迅疾响应

二维码
Qrazybox
扫出来只有前半部分flagctfshow{11451419-1981-
2023-12-07T213244
把纠错区涂白
2023-12-07T213410
得到另一半flaglandexiangle}
2023-12-07T213458

flag

ctfshow{11451419-1981-landexiangle}

我可没有骗你

加密压缩包
ARCHPR启动
2023-12-07T215519
爆到密码55813329
解压到一个mp3文件
听一下没什么东西
audacity打开也没有有用信息
010看是个wav文件
2023-12-07T220417
试试silenteye
2023-12-07T220607

flag

ctfshow{aha_cdsc_jejcfe5rj_cjfr24J}

你被骗了

副标题有个flag
但是如题,被骗了是假的
mp3stego
解密密钥是nibeipianle
Decode.exe -X -P nibeipianle nibeipianle.mp3
2023-12-07T222759
解密出来有个txt文件,里面就是flag

flag

ctfshow{chdv_1dcs_cjksnjn_NJDSjdcdjn}

一闪一闪亮晶晶

加密压缩包,但是有个图片
2023-12-07T223129
汉信码
汉信码解码
2023-12-07T223325
应该是解压密码
解压完音频文件听起来像是无线电信号
RX-SSTV
选择Robot 36 然后receiving找个安静的环境(我的图就是干扰太多)对着麦克风播放音频(可以用手机播)
2023-12-07T230736

flag

ctfshow{NNICCETOMMETYOU}

一层一层一层地剥开我的♥

压缩包提示已损坏
010看一下,应该是个docx文件,同时应该还包含了其他文件
2023-12-07T231703
改后缀打开
2023-12-07T231901
改成宋体
得到Twinkle twinkle little star,how I wonder what you are
binwalk分离一下其他文件
2023-12-07T233152
得到两个加密压缩包
密码应该跟文档里的歌词有关
试出密码是歌词的简谱11556654433221
解压出来一个图片和不知道后缀名的文件
先看看图片
2023-12-08T085956
图里还有一张图
2023-12-08T090843
010分离一下,得到winkwink~
2023-12-08T090907
而那个没有后缀的文件应该是个RAR格式文件
少了文件头52 61 72 21,补上就行
2023-12-08T094024
解压得到一堆emoji
base100解码一下
2023-12-08T101909

flag

ctfshow{Wa0_wa_Congr@tulations~}

打不开的图片

文件头和PNG文件头相加为0x100
用0x100减一下,直接求反
2023-12-08T121133
2023-12-08T124631

flag

ctfshow{84a3ca656e6d01e25bcb7e5f415491fa}