moectf2024-misc复现


杂项入门指北

题目描述:

1
2
3
4
5
6
第一周
什么?!还没有看到flag?快去欣赏海报吧

推荐新生使用并尝试掌握赛博厨师——CTFer的瑞士军刀:https://gchq.github.io/CyberChef/

海报得到的内容以 moectf{}包裹提交

海报发现摩斯密码

摩斯解密,赛博厨子一把梭

最后flag为

1
moectf{H4VE_A_G00D_T1ME}

signin

题目描述:

1
2
3
4
5
xdsec的小伙伴们和参赛者来上课,碰巧这一天签到系统坏了,作为老师的你,要帮他们 教师代签。
特殊提醒:luo同学今天好像在宿舍打游戏,不想来上课,这是严重的缺勤行为!!
签到完成后点击左下角的完成按钮并点击完成,如果你做的是正确的,等待几秒钟就会出现flag!
要是没正确签到,就无法拿到真正的flag哦。
flag 格式 moectf{[\da-zA-Z_!]+}

开启环境后按照要求将luo设为缺勤,其他代签后点完成即得flag

最后flag为

1
moectf{Thanks_For_You_signing_in_4ND_W3l0c0me_T0_M0ecTf_2024!!!}

罗小黑战记

题目描述:

1
小黑祝大家中秋快乐(拜个早秋)

gif拆分动图

扫描二维码得到flag

最后flag为

1
moectf{y0uu6r3th3m0st3r1nth1sf13ld}

ez_Forensics

题目描述:

1
某天,ubw亲眼看着npm在cmd中输入命令,将flag写入了flag.txt,然后删除了flag.txt。npm自信地认为没有人能够获取这道题的flag。然而,npm并没有料到,在他关闭cmd前,ubw及时保存了电脑的内存镜像。

下载附件后得到一个raw文件,查看cmd历史命令得到flag,直接一把梭

最后flag为

1
moectf{WWBGY-TLVC5-XKYBZ}

so many ‘m’

题目描述:

1
不是,怎么这么乱啊,这让我怎么做题

词频统计

最后flag为

1
moectf{C0pMuTaskingD4rE}

Abnormal lag

题目描述:

1
2
3
某天,npm正欣赏着刚从某网站上下载的歌曲,却发现这首歌的开头与结尾都有不正常卡顿,聪明的你能发现这其中的问题吗

flag格式:moectf{[\da-f-]+}

查看频谱

最后flag为

1
moectf{09e3f7f8-c970-4c71-92b0-6f03a677421a}

ez_F5

题目描述:

1
2
3
4
第一周
这天,妙蛙种子还在因为该如何藏flag而头疼,直到他不小心触碰了刷新键,瞬间flag和妙蛙种子都消失了,只留下了一张照片,你能救出妙蛙种子吗。

flag格式:moectf{[\da-zA-Z_]+}

查看图片属性

base解密

f5隐写

最后flag为

1
moectf{F5_15_s0_lntere5t1n9}

The upside and down

题目描述:

1
2
3
Stranger things看入迷了,不知道从哪里潜入the upside and down(异世界)来拯救霍金斯小镇,入口就在此题!

flag 格式 以moectf{}包裹

010查看文件

png文件倒置

扫描二维码得到

最后flag为

1
moectf{Fri3nds_d0n't_lie!}

ctfer2077①

题目描述:

1
2
3
4
5
某天晚上,你在通宵速通荒坂大楼,然后你猝死了(

再睁眼你发现你坐在一辆车中,正在被公司的人追杀,正当你不知道怎么办时,脑海里突然出现一道声音"欢迎来到ctfer2077,请开始解决你的第一题",说着你的脑子连入了一张图片

注:flag格式:moectf{[\da-z-]+}

zsteg一把梭得到flag

最后flag为

1
moectf{84d7f247-3cba-4077-ba25-079f3ac7bb8a}

ez_usbpcap

题目描述:

1
npm本在欢快地玩游戏,键盘声敲得和奏乐一样,隔壁大黑阔偷偷把usb接口换了一下,终于找到了npm奏乐如此动人的原因!

ctfnat-A一把梭

赛博厨子一把梭得到flag

最后flag为

1
moectf{n1ha0w0y0udianl32451}

捂住一只耳

题目描述:

1
2
3
一只手捂住耳朵 另一只手搓得键盘生火 不小心按到了caps键

flag 形式以moectf{}包裹提交

音频中可以听到” moef 63 31 43 31 41 52 31 51 71 101”

键盘坐标密码

第一位为数字区,第二位为键盘数字下第几个字符

最后对照得到

1
NEVERGETUP

最后flag为

1
moectf{NEVERGETUP}

the_secret_of_snowball

题目描述:

1
2
3
啊哦,captain rabbit被抓走了,最后留下的下机密就在图片里,怎么打不开,是被家宠破坏了吗,复仇计划无法进行?no way!想尽办法恢复图片,找到前一半flag,前往下水道王国 。
captain rabbit留下的最后一张图片,会有后一部分遗言?(老大不会game over的(确信),快找找吧!
flag模式 moectf{机密~}

010修改文件头

保存并打开图片得到第一部分flag

010查看文件末尾有base编码

base解密

最后flag为

1
moectf{Welc0me_t0_the_secret_life_0f_Misc!}

Find It

题目描述:

1
2
3
4
“今天天气真好啊,不愧是我大西安”,来西安旅游的npm感叹道,拍张照片吧。可惜,npm并没有想到,这张照片暴露的信息貌似太多了,你能根据这张照片找到npm拍摄照片时所在的小区嘛。

注:该小区有两个幼儿园,请取两个幼儿园共有的字,全拼小写,以_分离且以moectf{}包裹提交
此题不建议用谷歌地图

使用豆包搜索西安带”的”的幼儿园

最后flag为

1
moectf{ji_di_bao_you_er_yuan}

我的图层在你之上

题目描述:

1
2
3
一片漆黑,你能看出其中的奥秘吗

flag格式:moectf{[\da-z-]+}

pdf2docx转换成docx

exp:

1
2
3
4
5
6
7
8
from pdf2docx import Converter

pdf_file = "D:\\tmp\\attachments\\black.pdf"
docx_file = "D:\\tmp\\attachments\\black.docx"

cv = Converter(pdf_file)
cv.convert(docx_file)
cv.close()

得到docx文件,提取图片,stegsolve查看通道得到压缩包密码

解压压缩包得到

1
zbrpgs{q751894o-rr0n-47qq-85q4-r92q0443921s}

凯撒解密

最后flag为

1
moectf{d751894b-ee0a-47dd-85d4-e92d0443921f}

时光穿梭机

题目描述:

1
2
3
4
5
6
7
大量的铯废料堆积,能量放射过高,划出时间裂缝,sparkle穿越到1946年4月20日的伦敦,一脸茫然的她捡到一张当地知名的画报,上面写着国内的消息,知名古墓被开!?正当疑惑时,一眨眼又穿梭到2024年8月23日的该古墓遗址公园,反复的时空穿梭令她心口绞痛,从公园正门夺门而出,来到正对的中医院,大夫热心地治好了心痛之疾,眨眼间又穿梭到家,打开电脑,记录下这段神奇的经历!

wait a minute!还没有付给大夫医疗费用,可记忆只剩下了这些,你能帮帮她吗?

//以上故事内容纯属虚构,请按照提示作答。

flag内容为中医院前三个汉字的小写拼音,整个汉字拼音之间以_连接,flag内容以moectf{}包裹

根据题目故事描述,有几个关键词:1946年4月20日、国内知名古墓、遗址公园、正对的中医院、伦敦当时最有名的图报当然是the illustrated London News。
上网搜索到了对应的图报

Results | Between 20th Apr 1946 and 20th Apr 1946 | Illustrated London News | Publication | London, England | Location | British Newspaper Archive

借助AI查找陵墓

高德地图搜索王建永陵,查看其附近的中医院

最后flag为

1
moectf{han_fang_tang}

解不完的压缩包

题目描述:

1
玩过俄罗斯套娃吗,就和那一样,不过最后有一点小惊喜哦,加油吧

压缩包套娃

exp:

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
import zipfile
import os

# 初始ZIP文件
initial_zip = "D:\\tmp\\999.zip"
# 解压目录
extract_dir = "D:\\tmp\\1\\"

# 创建解压目录
os.makedirs(extract_dir, exist_ok=True)

# 移动初始ZIP文件到解压目录
import shutil
if os.path.exists(initial_zip):
shutil.move(initial_zip, os.path.join(extract_dir, initial_zip))

current_zip = initial_zip

try:
# 循环解压嵌套ZIP文件
for i in range(999, 0, -1):
current_zip_path = os.path.join(extract_dir, current_zip)

# 检查ZIP文件是否存在
if not os.path.exists(current_zip_path):
print(f"文件不存在: {current_zip_path}")
break

# 解压当前ZIP文件
with zipfile.ZipFile(current_zip_path, 'r') as zip_ref:
zip_ref.extractall(extract_dir)

# 删除已解压的ZIP文件
os.remove(current_zip_path)

# 设置下一个要解压的ZIP文件
next_zip = f"{i-1}.zip"
current_zip = next_zip

print("所有ZIP文件已成功解压!")
except Exception as e:
print(f"解压过程中发生错误: {e}")

crc爆破

解压压缩包得到

最后flag为

1
moectf{af9c688e-e0b9-4900-879c-672b44c550ea}

ctfer2077②

题目描述:

1
2
第三周
为了拯救T-bug和杰克,你不得不和某个联觉信标被更改的系统达成合作,它帮你改写剧情,而你帮它拿到一个关键的key。"key在这个加密卷里,我只知道密码是'法治富强自由富强和谐平等和谐平等法治法治和谐富强法治文明公正自由',他宝贝的,只能靠你自己解密了。" 请将得到的flag以moectf{}包裹提交

核心价值观解密

vc挂载

ntfs隐写

小鹤双拼输入法

一键为微软输入法添加小鹤双拼键位 - 知乎

1
2
3
4
5
6
shuang pin zhen de hen you yi si bushi ma 
双拼真的很有意思
key jiu shi xia mian zhe duan hua de quan pin xiao xie
key就是下面这段话的全拼小写
shuangpinshizheyangdazide
双拼是这样打字的

最后flag为

1
moectf{shuangpinshizheyangdazide}

ctfer2077③

题目描述:

1
2
3
4
5
6
7
终于到最后一章了,干爆亚当·重锤,想不出文案了,开摆

狡猾的出题人因为不想让你们做出来,将附件上传到了服务器上,不过还好有Alt帮你获取了这段流量,接下来,就靠你自己了

注:请将最终结果以_分离并包上moectf{}提交

gif图来源:b站up@炸鸡QwQ

http导出对象

是个压缩包文件,解压压缩包

将gif图分帧后可以发现key: C5EZFsC6

mp3隐写

brainfuck解密

解压压缩包得到三个txt

福尔摩斯跳舞的小人对照

跳舞的小人 - 知乎

对照得到

1
moectf{PEOPLE_DANCING_HAPPILY}

小小套娃

题目描述:

1
简单套娃 轻松拿下

binwalk分离文件

赛博厨子转文件

扫描二维码得到

解压是一个txt文档和加密压缩包,txt文档是零宽隐写

解压压缩包得到

1
新佛曰:諸隸閦僧降吽諸閦陀摩隸僧蜜念蜜劫哆咤若嘚閦嘇缽隸所羅閦劫諸諦若心菩咒閦即所空摩僧閦彌尊羅彌所眾若彌吽尊色訶閦空空閦摩即閦嚤蜜色嚴空即斯訶彌色空嚴嚴色陀閦阿降如如囑囑

新佛曰解密

最后flag为

1
moectf{sfdh8334r784jfx_sdjjuhreubc}

每人至少300份

题目描述:

1
npm本在愉快地度过暑假,然而天降300份社会实践问卷必须完成,与朋友们互帮互助同时,他的手机被黑阔小子盯上了,发出去的二维码被大切四块,打乱顺序,npm在手机中终于找到了侵入程序的编码,然deadline就在眼前,快来帮他恢复一下吧!

拼图

扫描二维码得到

base58解密

最后flag为

1
moectf{we1rd_qrc0d3}

readme

题目描述:

1
2
3
a veryveryveryveryveryveryveryvery simple reader 😇

关于验证码,示例:AAAAA+AAAAA=AAAAAAAAAA

访问/proc/self/fd/3

最后flag为

1
moectf{0HhhH_mAn_lt_I5-the-TRUE_siMP1e-ReaDEr8b41}

拼图羔手

题目描述:

1
2
3
拼图羔手申请出战!“Just do it!” flag格式以moectf{}包裹提交

enjoy it!

拼图

扫描二维码

根据原代码写出逆向程序

exp:

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
from base64 import b64encode,b64decode

def self_decoding(input_text):
code_setting_first = "doanythigfruebcjklmqpswvxz"
code_setting_sec = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
number_setting = "0123456789"
decoded_text = []
dataSet = {}
input_text = list(input_text)
for x in code_setting_first+code_setting_sec:
if x in code_setting_first:
if ord(x) < 104:
num = ord(x) + 19
elif ord(x) > 115:
num = ord(x) - 19
elif 104 <= ord(x) <= 115:
num = 219 - ord(x)
dataSet[chr(num)] = x
elif x in code_setting_sec:
if 64 < ord(x) < 72:
num = ord(x) + 7
elif 71 < ord(x) < 79:
num = ord(x) - 7
elif 78 < ord(x) < 82:
num = ord(x) + 9
elif 87 < ord(x) < 91:
num = ord(x) - 9
elif 81 < ord(x) < 88:
num = 168 - ord(x)
dataSet[chr(num)] = x

for x in input_text:
if x in code_setting_first or x in code_setting_sec:
decoded_text.append(dataSet[x])
elif x not in number_setting:
decoded_text.append(x)

digitData = []
for i in range(len(input_text) - 1, 0, -1):
if input_text[i] in number_setting:
if i != len(input_text) - 1:
x = int(input_text[i]) ^ int(input_text[i + 1])
input_text[i] = str(x)
digitData.append(str(x))
elif i == len(input_text) - 1:
digitData.append(input_text[-1])
decoded_text += digitData[::-1]
return ''.join(decoded_text)


def reverse_encoding(input_text):
output_text = input_text[::-1]
return output_text


def decode_strange_character_hint(key):
key = b64decode(key).decode('utf-8')
key = self_decoding(key)
key = reverse_encoding(key)
print(''.join(key))


"""enjoy the revenge!"""

if __name__ == "__main__":
output_text = "71517ysd%ryxsc!usv@ucy*wqosy*qxl&sxl*sbys^wb$syqwp$ysyw!qpw@hs"
key_output = "eGl4c2R4bmxVbVhpeHVuYkdzYXJkZnRhVWl4YXZ0aXRzSnh6bXRpYVU="
decode_strange_character_hint(key_output)
print(self_decoding(reverse_encoding(output_text)))

运行得到

根据提示,将符号替换为键盘上对应的数字

最后flag为

1
moectf{hs2dkj1dfhf4kdjfh4ud6hfuh8oeh7oej8fhljd8fvb2chb1vhefi5whf52367}

文章作者: yiqing
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 yiqing !
  目录