MISC
misc入门指北
常见pdf隐写,直接复制即可
moectf{We1c0m3_7o_tH3_w0R1d_0f_m1sc3111aN3ous!!}
RUSH
“冲刺,冲刺!”你正走在路上,耳边传来这样的声音,还没反应过来,就被撞倒了。
你费劲地爬起来,好像看到了什么信息,回过神来那人早已扬长而去,那我缺的这个道歉这块?
上述文案纯属看图说话,玩个梗,无恶意
打开发现一个gif图
在第十二帧藏了一个类似二维码的东西
提取
不完整但是可以解出来,通过qrcode
moectf{QR_C0d3s_feATUR3_eRror_c0RRECt10N}
ez_LSB
常见LSB隐写
red通道藏了flag
一眼base64
moectf{LSB_1s_s0_1nt3rest1ng!!sj9wd}
ez_锟斤拷????
E=hv在记事本里写下了一些神秘字符,但是经过一通保存另存为的迷之操作之后文本文件里的东西全变成了乱码
现在我把这个文件给你,请你帮助hv找回文件的秘密吧!
请把得到的flag转换成半角字符上交
hint:此题解法与锟斤拷有关
给了一个flag.txt均为乱码
根据提示
“锟斤拷”源自于GBK字符集和Unicode字符集之间的转换问题。在Unicode和原有编码体系的转化过程中,有一些字符用Unicode是无法表示的,Unicode官方用了一个占位符来表示这些无法表示的字符,这个字符用unicode转义字符表示为ufffd,对应的utf-8编码为“EFBFBD”。如果这个编码重复两次,然后放到GBK/GB2312/GB18030的环境中显示时,一个汉字占据2个字节,最终的结果就是:锟斤拷——锟(EFBF),斤(BDEF),拷(BFBD)
常见的乱码修复
with open("flag.txt", "r", encoding="utf-8", errors="ignore") as f:data = f.read()# 现在 data 是一堆 "锝嶏綇…" 的乱码
# 把它当作 "GBK 编码过的文本" 转回字节,再用 UTF-8 正解码
fixed = data.encode("gbk", errors="ignore").decode("utf-8", errors="ignore")with open("fixed.txt", "w", encoding="utf-8") as f:f.write(fixed)print("修复完成,请查看 fixed.txt")
moectf{EnC0d1ing_gbK_@nD_Utf_8_1s_4un!!ewwww}恭喜你得到弗拉格后面全昔斤拷锟斤拷锟斤拷
moectf{EnC0d1ing_gbK_@nD_Utf_8_1s_4un!!ewwww}
weird_photo
FLAG就在图中。
什么,你说你看不见 FLAG?注意 CRC!
一张图片高宽明显不对劲
修复后得到
moectf{Image_Height_Restored}
SSTV
识别并解码附件中使用的特殊通信协议,以获取隐藏信息。
附件里是一个音频
根据提示sstv寻找相关工具
这里使用RX-SSTV慢扫描工具
接受无线电
获得flag
moectf{d3codiNG_SStV_reQu1REs-PATI3nC3}
encrypted_pdf
一个pdf加密,随便找个线上pdf解密
获得
不知道写什么,那就啊啊啊宝宝你是一个香香软软甜甜糯糯蜂蜜奶油甜甜腻腻酥
酥脆脆滑滑嫩嫩番茄炒可乐番茄炒科比草莓蓝莓苹果香蕉葡萄香香甜甜酸酸甜
甜辣辣爽爽咸咸鲜鲜苦苦甘甘滑滑嫩嫩酥酥脆脆软软绵绵弹弹润润油油腻腻清
清爽爽浓浓醇醇淡淡幽幽热热乎乎冰冰凉凉黏黏糊糊爽爽脆脆鲜鲜嫩嫩辣辣麻
苦苦辣辣苹果香蕉橙子草莓葡萄西瓜樱桃菠萝猕猴桃蓝莓桃子梨杏李子西红柿
黄瓜胡萝卜生菜菠菜花椰菜卷心菜洋葱大蒜土豆红薯南瓜玉米豌豆扁豆红豆绿
豆黄豆黑豆鸡蛋牛奶奶酪酸奶黄油面包面条米饭燕麦玉米片饼干蛋糕油鱼虾蟹
龙虾贝类牛肉羊肉猪肉鸡肉鸭肉鹅肉火鸡肉香肠火腿培根肉丸汉堡热狗披萨寿
司拉面咖喱炖肉烤肉烤鱼烤鸡沙拉汤粥蒸蛋豆腐豆浆豆奶豆腥草豆皮豆干芒果
柠檬柚子金桔百香果火龙果牛油果无花果荔枝龙眼枇杷山楂桑葚甜瓜哈密瓜甜
菜根莴苣茼蒿芥蓝芹菜荠菜苋菜意式烤蔬菜配香草酱和橄榄油鲜美多汁香脆可
口滑嫩浓郁醇厚甘甜爽口香辣酸甜苦辣咸香酥软糯滑爽劲道鲜美清香扑鼻诱人
色泽鲜艳香气扑鼻口感丰富层次分明风味独特香气四溢回味无穷色香味俱佳口
感细腻肉质鲜嫩色泽金黄外酥里嫩香气浓郁味道鲜美口感滑嫩味道醇厚味道独
特味道浓郁口感丰富味道鲜美味道醇厚味道独特香气扑鼻的………………
编不下去了,给你们看图片吧
谁不喜欢可可爱爱的XDSEC娘啊啊啊啊啊啊
moectf{Pdf_1s_r3a1ly_c0lor4ul!!ihdw}
啊啊啊求求你了SEC娘给我flag好不好啊我什么都会做的呜呜呜呜呜呜呜呜呜 这里没有flag呦(摊手)
算了,看在musc手这么坐牢的份上给点提示吧,找这题flag的方式和入门指
北差不多,或者了解一下矢量化pdf(?
又是pdf的隐写
moectf{Pdf_1s_r3a1ly_c0lor4ul!!ihdw}
哈基米难没露躲
哈基米语解密
fakeflag{you_can_try_searching_text_Steganography}
文本隐写考虑零宽度字符
moectf{1b8956b9-a423-4101-a1bd-65be33682c82}
捂住一只耳
一只手捂住耳朵 另一只手打开音乐 似乎听到了不一样的声音
flag 形式以moectf{}包裹提交,忽略大小写
一眼 audicity莫斯电码解码
..-. .-.. .- --. .. ... ---... .... .- .-.. ..-. ..--.- .-. .- -.. .. --- ..--.- .. -. ..--.- -..- -.. ..-
FLAGIS:HALF_RADIO_IN_XDU
moectf{HALF_RADIO_IN_XDU}
Encrypted volume
提示 找到钥匙,解开加密卷!
解压获得两个文件
一个为空另一个是加密文件
压缩包1,050,021 字节
volume1,048,576字节,空文件0字节
明显压缩包藏东西了
binwalk发现藏了png
foremost分离
是一张二维码
qrcode解码获得密钥
😡(s<"A3F:89x541Ux[<
然后用veracrypt 工具进行挂载加密卷:、
获得这个
+++++ +++++ [->++ +++++ +++<] >++++ +++++ .++.< +++[- >---< ]>-.- -.<++
++[-> ++++< ]>+.< +++[- >---< ]>--- --.<+ +++[- >++++ <]>++ +++.< +++[-
---< ]>--- -.<++ +++[- >---- -<]>- ----- .++++ ++++. +++++ +++.- -----
.<+++ +[->+ +++<] >++++ ++.<+ ++++[ ->--- --<]> -.<++ ++++[ ->--- ---<]
---- .<+++ ++++[ ->+++ ++++< ]>+++ +++++ ++.<+ +++++ +[->- ----- -<]>-
--.<+ ++++[ ->+++ ++<]> +++++ ++++. <++++ +[->- ----< ]>--- ----- --.<+
+++++ [->++ ++++< ]>+++ +++++ .<+++ [->-- -<]>- .---- ---.< +++++ [->++
+++<] >++++ +.+++ .<+++ [->-- -<]>- --.<+ +++[- >---- <]>-- ----- -.---
---.- .<+++ +[->- ---<] >---- ---.< +++++ +[->+ +++++ <]>++ +++.- -----
-.<++ +++[- >++++ +<]>+ +++.+ +++++ +++.- ----- --.<+ +++++ [->-- ----<
]>--- -.<++ +++++ [->++ +++++ <]>++ +++++ .<
得到
moectf{nOW_YoU-h4V3_UNlocKED-VOlumE}
万里挑一
解压发现两个压缩包
提示Only one password in the 10000 archives can open the lock
password里面是10000个压缩包套的压缩包
写脚本解压压缩包获得其中的密码
每一个压缩包藏了一个密码
写脚本导出所有作为字典库
import osimport shutilimport zipfiledef clear_dir(dir_path):"""清空目录(如果存在则删除所有内容,否则创建)"""if os.path.exists(dir_path):shutil.rmtree(dir_path)os.makedirs(dir_path)res = ""def main():base_dir = os.getcwd() # 获取当前工作目录temp_dirs = ['temp1', 'temp2', 'temp3', 'temp4'] # 四级临时目录temp_lock_dir = 'temp_lock' # lock.zip解压目录# 初始化临时目录for d in temp_dirs + [temp_lock_dir]:clear_dir(d)# 步骤1: 解压初始的password.zip(如果尚未解压)if not os.path.exists('0.zip'):try:with zipfile.ZipFile('password.zip', 'r') as z:z.extractall(base_dir)print("解压password.zip完成")except Exception as e:print(f"解压password.zip失败: {e}")return# 步骤2: 四层循环遍历所有组合for i in range(10): # 第一层 (0-9)clear_dir('temp1')try:with zipfile.ZipFile(f'{i}.zip', 'r') as z:z.extractall('temp1')except:continue # 跳过损坏的压缩包for j in range(10): # 第二层 (0-9)clear_dir('temp2')try:with zipfile.ZipFile(os.path.join('temp1', f'{j}.zip'), 'r') as z:z.extractall('temp2')except:continuefor k in range(10): # 第三层 (0-9)
将导出的 passwd.txt 作为字典,我们使用 ARCHPR 工具,选择攻击类型为字典:clear_dir('temp3')try:with zipfile.ZipFile(os.path.join('temp2', f'{k}.zip'), 'r') as
z:z.extractall('temp3')except:continuefor l in range(10): # 第四层 (0-9)clear_dir('temp4')try:with zipfile.ZipFile(os.path.join('temp3', f'{l}.zip'),
'r') as z:z.extractall('temp4')except:continue# 读取密码文件pwd_file = os.path.join('temp4', 'pwd.txt')if not os.path.exists(pwd_file):continueglobal reswith open(pwd_file, 'r') as f:password = f.read()[16:].strip()res += password + "\n"if __name__ == '__main__':main()with open("passwd.txt","w") as f:f.write(res)print("密码已导出")
archpr爆破获得密码
没想到又套了一层
解压后得到一个 flag.zip 压缩包,里面有 flag.txt 和 明文.exe 两个文件,提示我们可以使用明文攻击(因为.exe前面固定头格式)
4D 5A 90 00 03 00 00 00 04 00 00 00
使用bkcrack明文攻击
新建一个 16 进制文件 attack.bin,写入这 12 个字节
.\bkcrack -C flag.zip -c "明文.exe" -p attack.bin
进行碰撞
eec878a3 6808e48f 3aa41bd8
继续破解压缩包
.\bkcrack -C flag.zip -k eec878a3 6808e48f 3aa41bd8 -D flag2.zip
解密flag.txt即可
moectf{Y0u_h4v3_cho5en_7h3_r1ght_z1pf1le!!uysdgfsad}
Enchantment
哇多么好的附魔啊你把图片发了出去,但似乎附魔台上的文字有一些不对劲?注:请将最终结果按单词以_分离并包上moectf{}提交,忽略大小写
解压获得一个流量包
发现upload上传了一个png文件
直接提取发现是我的世界附魔台,银河字母解码
对着解码即可
moectf{now_you_have_mastered_enchanting}
ez-png
提示:
这张平平无奇的图片里藏着一个小秘密。
秘密不在颜色中,而在文件的骨骼里。
注意:某些数据段的长短似乎不太协调。
仔细观察发现
idat数据块没满就开始了下一个
即
有问题
提取出来
import zlib; print(zlib.decompress(bytes.fromhex("78 9C CB CD 4F 4D 2E 49 AB CE 30 74 49 71 CD 8B 0F 30 89 CC F1 4F 74 89 F7 F4 D3 F5 4C 31 09 A9 05 00 A8 D0 0A 5F".replace(" ", ""))))
moectf{h1DdEn_P4YlOaD_IN-Id4T}
2048_master
逆向题。。。。
ida打开进去找到胜利条件
把需要达成的分数修改为4
玩两下即可出答案
moectf指导版
第一步小鱼干点了25个之后点
flag
得到信息
我先告诉你账号吧,我记得是三个问题组成的,第一个问题是moectf2024的web方向一共多少个flag?(不包括问卷调查)
组合起来的第一个账号名
241410173
然后他说题目不对继续回去
根据问题账号改为
241410156
然后提示
根据提示密码是password
然后是incorrect!
ctrl+a选择所有文字发现xbhiuebkjvs
提示
你这一眼就乱输入的,能对我吃。算了,我直接告诉你密码吧,密码就是******,都怪你之前不是管理员还按了那个按钮,屏幕被弄坏了,密码好像都显示不出来了。
所以密码是******
最后设置->左右镜像反转->flag->左右镜像反转获得flag
moectf{e35d885e-ceef-3fc4-57ea-95da89ae65f0}
web-repo
附件是个webp后缀的二维码
扫一下
提示use binwalk
binwalk得到一个压缩包
提取出来一个.git
明显是git历史记录藏了flag
git log
commit 249ff41401736165cd4514cee7afcd31ecfe7d09 (HEAD -> master)
Author: test <test@example.com>
Date: Tue Aug 19 22:33:29 2025 +0800flag
gitshow获得flag
moectf{B1NwA1K_ANd_g1t_R3seT-MaG1C}
ez-ssl
题目
zero6six 在网页内上传了一份秘密文件。望着浏览器提示的“连接安全,信息不会外泄”,他觉得万无一失。但与此同时,他的浏览器却悄悄上传了另一份文件。现在把他电脑的抓包记录给你,你能破解他的秘密吗?
上传文件,过滤http post包
得到一串密钥
CLIENT_RANDOM 5cc9d58e7bf7268c8c7ca13915b43530206bc57523a3dc06420f47291081bf70 3318cf82ad502316bfa204be096be19f297b0e5f680d81e462c39d0af53ab67b82d0e11b54db16dae81394cd9e9816e4
CLIENT_RANDOM 523878d7689e894823485b8f32727c779f8605866423eab6f4cc16c9df1cfb33 3318cf82ad502316bfa204be096be19f297b0e5f680d81e462c39d0af53ab67b82d0e11b54db16dae81394cd9e9816e4
CLIENT_RANDOM ccfba4dd12e374afd300f296b691e12b70f9d5f8be0458782887763c8a54626e 3318cf82ad502316bfa204be096be19f297b0e5f680d81e462c39d0af53ab67b82d0e11b54db16dae81394cd9e9816e4
CLIENT_RANDOM c8e817f2efcee3be9290aa075919f50f329be997b124487d02a1850e48c4292d 3318cf82ad502316bfa204be096be19f297b0e5f680d81e462c39d0af53ab67b82d0e11b54db16dae81394cd9e9816e4
结合题目提示,明显是被加密了
接下来就是寻找
https加密的密钥协议为tls
编辑首选项找到tls更改密钥配置(secret log filename)为刚才找到的内容
然后重新查看刚才的post包
发现多了一条
打开发现是压缩包
在这里导出为分组字节流
爆破得到密码6921682
得到flag.txt
为ook编码 网址[Brainfuck/Ook! Obfuscation/Encoding splitbrain.org]解码得到
moectf{upI0@d-l0G_TO-DeCrYPT_uploAD}