抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

金三胖

Photoshop 打开后调出时间轴,可见三张图。

1
flag{he11ohongke}

二维码

binwalk 一下发现文件末尾有压缩包,binwalk -e 提取出来。

根据 4 number 的提示,使用 ARCHPR 爆破压缩包密码。

得到密码为 7639,解压得到 flag。

1
CTF{vjpw_wnoei}

N种方法解决

没法正常运行的 exe 文件,010 editor 打开,发现只是一张 base64 的图片。

解码之后得到一个二维码。

img

扫码得 flag。

1
KEY{dca57f966e4e4e31fd5b15417da63269}

大白

用 010 editor 打开图片,运行模板发现 CRC 校验错误,猜测是图片宽高被修改。用脚本跑出宽高。

1
2
3
4
5
6
7
8
crcbp = open("dabai.png", "rb").read()
for i in range(2000):
for j in range(2000):
data = crcbp[12:16] + struct.pack('>i', i)+struct.pack('>i', j)+crcbp[24:29]
crc32 = binascii.crc32(data) & 0xffffffff
if(crc32 == 0x6D7C7135):
print(i, j)
print('hex:', hex(i), hex(j))

得到高度应为 01 DF,对应修改得到原图。

1
flag{Heql0_d4_ba1}

你竟然赶我走

用 010 editor 打开图片可发现文件的末尾有 flag。

1
flag{stego_is_s0_bor1ing}

基础破解

根据题目描述可知压缩包的密码为四位数字。ARCHPR 爆破得到密码 2563。

解压可得到一串 base64。

text
1
ZmxhZ3s3MDM1NDMwMGE1MTAwYmE3ODA2ODgwNTY2MWI5M2E1Y30=

解码可得到 flag。

1
flag{70354300a5100ba78068805661b93a5c}

乌镇峰会种图

用 010 editor 打开图片可发现文件的末尾有 flag。

1
flag{97314e7864a8f62627b26f3f998c37f1}

LSB

使用 StegSolve 解得 LSB 下存在 PNG 文件。

提取出来得到一个二维码,扫描之后得到 flag。

1
cumtctf{1sb_i4_s0_Ea4y}

图片中的秘密

用 010 editor 打开文件,在数据帧中可以找到 flag.

1
flag{870c5a72806115cb5439345d8b014396}

rar

根据题目描述可知压缩包的密码为四位数字。ARCHPR 爆破得到密码 8795。

解压可得到 flag。

1
flag{1773c5da790bd3caff38e3decd180eb7}

wireshark

使用 wireshark 打开流量包,筛选 http 条目。根据提示可知要找管理员密码。找到登录的 POST 请求,可以看到管理员密码。

1
flag{ffb7567a1d4f4abdffdb54e022f8facd}

qr

扫描二维码得出 flag。

1
Flag{878865ce73370a4ce607d21ca01b5e59}

zip伪加密

010 editor 打开文件,修改 frFlagsdeFlags00 即可去除伪加密。

解压即可得到 flag。

1
flag{Adm1N-B2G-kU-SZIP}

ningen

010 editor 查看文件可知文件尾部有压缩文件。

binwalk -e 分理出压缩包,根据题目描述猜测为四位数密码,用 ARCHPR 爆破得出解压密码为 8368。

解压出文件可得 flag。

1
flag{b025fc9ca797a67d2103bfbc407a6d5f}

镜子里面的世界

StegSolve 解 LSB 隐写可得信息。

提取出来可得 flag。

1
flag{st3g0_saurus_wr3cks}

被嗅探的流量

wireshark 分析流量包,筛选 http 条目可看到一个图片的 POST。

提取出分组字节,用 010 editor 打开,可在文件尾部看到 flag。

1
flag{da73d88936010da1eeeb36e945ec4b97}

小明的保险箱

010 editor 打开文件,文件尾部发现压缩文档。binwalk -e 分离出来。

根据题目描述可知压缩包的密码为四位数字。ARCHPR 爆破得到密码 7869。

解压出文件可得 flag。

1
flag{75a3d68bf071ee188c418ea6cf0bb043}

爱因斯坦

010 editor 打开解压的图片,文件尾部可以发现压缩文档。binwalk -e 分离出来。

发现需要解压密码,同时在图片的备注中有 this_is_not_password

将其作为解压密码成功解压文件,即可得到 flag。

1
flag{dd22a92bf2cceb6c0cd0d6b83ff51606}

easycap

Wireshark 打开流量包,发现全是 TCP 流,于是追踪 TCP 流,可得 flag。

1
flag{385b87afc8671dee07550290d16a8071}

另外一个世界

010 editor 打开文件,模板报错 Missing End of File marker,发现文件尾部有数据。

text
1
01101011011011110110010101101011011010100011001101110011

将其写作八位一组之后转 ASCII 可得 koekj3s

1
flag{koekj3s}

FLAG

StegSolve 解 LSB 隐写可发现一个压缩文件。

保存下来并去掉末尾的冗余数据,解压得到一个 ELF 文件。使用 Linux 终端运行可得 flag。

1
hctf{dd0gf4c3tok3yb0ard4g41n~~~}

隐藏的钥匙

010 editor 打开文件可见 flag 提示。

提取出来之后 base64 解码可得 flag。

1
flag{377cbadda1eca2f2f73d36277781f00a}

假如给我三天光明

图片中的盲文根据对照表解出为 kmdonowg。将其作为压缩包密码解密音频文件。

解压音频后可甄别是摩斯电码,使用 CwGet 接收可得文本。

1
flag{wpei08732?23dz}

神秘龙卷风

根据题目描述可知压缩包的密码为四位数字。ARCHPR 爆破得到密码 5463。

解压出来发现一个文本,使用 Brainfuck 解码之后得到 flag。

1
flag{e4bbef8bdf9743f8bf5b727a9f6332a8}

后门查杀

下载代码下来审计,发现如下一行。$pass = '6ac45fb83b3bc355c024f5034b947dd3'; //angel 直接取出字符串得到 flag。

1
flag{6ac45fb83b3bc355c024f5034b947dd3}

荷兰宽带数据泄露

.bin 文件,猜测是路由器配置文件。使用 RouterPassView 查看,尝试之后发现用户名字段为 flag。

1
flag{053700357621}

来首歌吧

打开音频文件,发现中间夹杂着莫斯电码,使用 CwGet 接收,得到 flag。

图上第一个字符有误,音频中为 ..... 应为 5

1
flag{5BC925649CB0188F52E617D70929191C}

数据包中的线索

Wireshark 分析数据包,追踪 TCP 流,可以发现 base64 数据。

将其前后冗余数据去除后加上 data:image/jpeg;base64, 可以解码成图片,从而得到 flag。

1
flag{209acebf6324a09671abc31c869de72c}

九连环

010 editor 打开文件,发现其尾部有压缩文档。

binwalk -e 分离出来,得到套娃的两个压缩文件。第二层的图片被加密了,找不到其他信息,猜测是伪加密。修改 14 00 01 0814 00 00 08 成功解压出图片。

然后 jpg 图片看隐写,StegHide 成功解出 secret,得到第三层压缩包密码 bV1g6t5wZDJif^J7

解压即可得到 flag。

1
flag{[email protected]&[email protected]*XL}

面具下的flag

010 editor 打开文件,发现其尾部有压缩文档。

binwalk -e 分离出来,得到一个加密的压缩文档。分析之后可知是伪加密,修正之后解压得到虚拟磁盘文件。使用 7z x flag.vmdk 解压并重命名 NUL 文件之后可以得到两端文本。

text
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
+++++ +++++ [->++ +++++ +++<] >++.+ +++++ .<+++ [->-- -<]>- -.+++ +++.<
++++[ ->+++ +<]>+ +++.< +++++ +[->- ----- <]>-- ----- --.<+ +++[- >----
<]>-- ----- .<+++ [->++ +<]>+ +++++ .<+++ +[->- ---<] >-.<+ +++++ [->++
++++< ]>+++ +++.< +++++ [->-- ---<] >---- -.+++ .<+++ [->-- -<]>- ----- .<
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook?
Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook!
Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook.
Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook? Ook. Ook? Ook! Ook. Ook?
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook.
Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook!
Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook?
Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook. Ook?
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook.
Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook!
Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook? Ook. Ook? Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook!
Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook.

分别将其使用 Brainfuck 和 Ook! 解码之后可以得到 flag。

1
flag{N7F5_AD5_i5_funny!}

webshell后门

跟之前的后门查杀一样,找到 $pass = 'ba8e6c6f35a53933b871480bb9a9545c'; //angel 即得到 flag。

1
flag{ba8e6c6f35a53933b871480bb9a9545c}

被劫持的神秘礼物

使用 Wireshark 分析流量包,筛选 http 条目,找到唯一的 POST 请求,即可得到账号密码。

根据提示将帐号密码串起来再 MD5 一次即得到 flag。

1
flag{1d240aafe21a86afc11f38a45b541a49}

刷新过的图片

解压得到一张图片,根据暗示尝试 F5 隐写。java Extract .\Misc.jpg 解得一个压缩文档。分析后为伪加密,将 deFlag 处改为 00 00 即可解压出 flag。

1
flag{96efd0a2037d06f34199e921079778ee}

snake

010 editor 打开文件,发现其尾部有压缩文档。

binwalk -e 分离出来,解压得到两个文件。将 key 文件中的 base64 解码得到如下文本。

text
1
What is Nicki Minaj's favorite song that refers to snakes?

搜索之后可得 key 为 anaconda。根据题目暗示可知加密方式是 Serpent,使用对应解密工具解密可得 flag。

1
CTF{who_knew_serpent_cipher_existed}

梅花香之苦寒来

010 editor 打开文件,发现其尾部有数据。

复制出来之后用十六进制转 ASCII 可以得到一些坐标点,将其处理成 csv 格式的数据。

使用 Excel 画出散点图,可以得出一个二维码。

扫描即可得出 flag。

1
flag{40fc0a979f759c8892f4dc045e28b820}

菜刀666

使用 Wireshark 分析流量包,追踪 TCP 流可知道 flag 在一个压缩包内。

binwalk -e 分离出来,发现需要密码。回到 TCP 流的跟踪中可以发现一张图片的传输,将其提取出来。

得到压缩包的密码,解压即可得到 flag。

1
flag{3OpWdJ-JP6FzK-koCMAK-VkfWBq-75Un2z}

被偷走的文件

Wireshark 分析流量包,跟踪 TCP 流,可以发现一个压缩文档。

将其保存下来然后使用 ARCHPR 爆破得出解压密码为 5790。

解压文件即可得到 flag。

1
flag{6fe99a5d03fb01f833ec3caa80358fa3}

[BJDCTF2020]认真你就输了

解压后得到 xls 文件,010 editor 打开可见如下提示。

将后缀名改为 zip 打开后找到 ../charts/flag.txt,打开即可得到 flag。

1
flag{M9eVfi2Pcs#}

[BJDCTF2020]藏藏藏

foremost 从图片中分离出一个压缩文档,打开后可以得到一个 Word 文档,打开后可得一个二维码。

扫描二维码可得 flag。

1
flag{you_are_the_best!}

[GXYCTF2019]佛系青年

附加压缩文档存在伪加密,修正之后解压可得一个文本文档。在其中有如下提示。

text
1
佛曰:遮等諳勝能礙皤藐哆娑梵迦侄羅哆迦梵者梵楞蘇涅侄室實真缽朋能。奢怛俱道怯都諳怖梵尼怯一罰心缽謹缽薩苦奢夢怯帝梵遠朋陀諳陀穆諳所呐知涅侄以薩怯想夷奢醯數羅怯諸

使用与佛论禅程序解密可得 flag。

1
flag{w0_fo_ci_Be1}

秘密文件

与被偷走的文件一致,Wireshark 分析流量包跟踪 TCP 流,可以发现一个压缩文档。

将其保存下来然后使用 ARCHPR 爆破得出解压密码为 1903。

解压文件即可得到 flag。

1
flag{6fe99a5d03fb01f833ec3caa80358fa3}

[BJDCTF2020]你猜我是个啥

010 editor 打开文件,在文件尾部可发现 flag。

1
flag{[email protected]}

[SWPU2019]神奇的二维码

binwalk 可以发现解压出来的图片中存在四个压缩文档,binwalk -e 分离出来。

除开找到的彩蛋,有用的信息在一个 Word 文档中,套娃 base64 解码之后得到 comEON_YOuAreSOSoS0great。将这串字符串作为压缩包密码解压出音频。很容易分辨出音频是摩斯电码,使用 CwGet 接收可得文本。

1
flag{morseisveryveryeasy}

[BJDCTF2020]一叶障目

PNG 文件 CRC32 校验失败,加之 StegSolve 无解,于是猜测图片宽高不对。使用脚本计算出宽高 ('hex:', '0x141', '0x34c') 并修正。

1
xaflag{66666}

穿越时空的思念

将音频文件导入 Audition,可发现右声道存在摩斯电码,使用 CwGet 接收可得文本。

去除掉重复部分并拼接可得 flag。

1
flag{f029bd6f551139eedeb8e45a175b0786}

[BJDCTF2020]鸡你太美

解压得到两个 gif 文件,其中有一个无法打开。使用 010 editor 打开,看到开头为 9a 两个字符,猜测是 GIF 头不完整,补全为 GIF89a 后可以成功打开并看到 flag。

1
flag{zhi_yin_you_are_beautiful}

[BJDCTF2020]just_a_rar

解压之后得到一个压缩文档,根据压缩文档名称提示,使用 ARCHPR 爆破得到密码 2016。

解压得到一张 jpg 图片,使用 010 editor 打开可在文件中部找到 flag。

1
flag{Wadf_123}

[GKCTF2020]Pokémon

下载个 VisualBoyAdvance-M 并载入游戏,根据剧情和提示走到 103 号路就能看到 flag。

1
flag{PokEmon_14_CutE}

[ACTF新生赛2020]outguess

解压出来非常多奇怪文件,不过根据题目名称,应该是 outguess 隐写,所以要找一下 key。在图片的属性中找到一串社会主义核心价值观,解密一下可以得到 abc,因此 abc 是 key。

将 abc 作为密钥对图片执行 outguess 解密操作即可得到 flag。

1
ACTF{gue33_Gu3Ss!2020}

[BJDCTF2020]纳尼

010 editor 打开解压出来的 GIF 图片,根据文本文档提示可知需要补全 GIF 文件头,于是插入 GIF8 补全文件头。用 PS 打开逐帧导出可以得到一串字符串。

得到字符串为 Q1RGe3dhbmdfYmFvX3FpYW5nX2lzX3NhZH0=,base64 解码后得到 flag。

1
CTF{wang_bao_qiang_is_sad}

[SWPU2019]我有一只马里奥

运行一次可执行文件,可以得到提示。

1
2
ntfs      
flag.txt

于是尝试使用 NTFS Stream Editor 分析,可以发现输出的文本文档中包含附加数据。

1
swupctf{ddg_is_cute}

谁赢了比赛?

010 editor 打开文件,发现其尾部有压缩文档。binwalk -e 分离出来,使用 ARCHPR 爆破得到密码 1020。

得到一张 GIF 图片,使用 PS 打开,在图层 310 处可以看见 hint do_you_know_where_is_flag。将图层导出,使用 StegSolve 解隐写,可以得到一个二维码。

扫描即可得到 flag。

1
flag{shanxiajingwu_won_the_game}

Mysterious

用 IDA 打开分析程序,根据字符串 well done 可以找到子程序 sub_401090。将其反编译得到以下代码。

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
int __stdcall sub_401090(HWND hWnd, int a2, int a3, int a4)
{
int v4; // eax
char Source; // [esp+50h] [ebp-310h]
CHAR Text[4]; // [esp+154h] [ebp-20Ch]
char v8; // [esp+159h] [ebp-207h]
__int16 v9; // [esp+255h] [ebp-10Bh]
char v10; // [esp+257h] [ebp-109h]
int Value; // [esp+258h] [ebp-108h]
CHAR String; // [esp+25Ch] [ebp-104h]
char v13; // [esp+25Fh] [ebp-101h]
char v14; // [esp+260h] [ebp-100h]
char v15; // [esp+261h] [ebp-FFh]

memset(&String, 0, 0x104u);
Value = 0;
if ( a2 == 16 )
{
DestroyWindow(hWnd);
PostQuitMessage(0);
}
else if ( a2 == 273 )
{
if ( a3 == 1000 )
{
GetDlgItemTextA(hWnd, 1002, &String, 260);
strlen(&String);
if ( strlen(&String) > 6 )
ExitProcess(0);
v4 = atoi(&String);
Value = v4 + 1; //Value should be 122 + 1 == 123
if ( v4 == 122 && v13 == 120 && v15 == 122 && v14 == 121 )
{
strcpy(Text, "flag");
memset(&v8, 0, 0xFCu);
v9 = 0;
v10 = 0;
_itoa(Value, &Source, 10);
strcat(Text, "{");
strcat(Text, &Source); //123
strcat(Text, "_");
strcat(Text, "Buff3r_0v3rf|0w");
strcat(Text, "}");
MessageBoxA(0, Text, "well done", 0);
}
SetTimer(hWnd, 1u, 0x3E8u, TimerFunc);
}
if ( a3 == 1001 )
KillTimer(hWnd, 1u);
}
return 0;
}

Value = v4 + 1 和判断中的 v4 == 122 可知 Value 在满足走下去的条件时应为 123,将下文的字符串拼接起来即可得到 flag。

1
flag{123_Buff3r_0v3rf|0w}

sqltest

Wireshark 分析流量包筛选 http 条目可知是 SQL 盲注的流量包,flag 长度为 38。按照盲注的逻辑记录下返回值为真的 ASCII 数值。

text
1
102 108 97 103 123 52 55 101 100 98 56 51 48 48 101 100 53 102 57 98 50 56 102 99 53 52 98 48 100 48 57 101 99 100 101 102 55 125

将其转为字符串可得 flag。

1
flag{47edb8300ed5f9b28fc54b0d09ecdef7}

[GXYCTF2019]gakki

010 editor 打开文件,发现其尾部有压缩文档。

binwalk -e 分离出来,使用 ARCHPR 爆破得到密码 8864。

解压后得到看不懂的文本文档,统计文本字符可得 flag。

1
GXY{gaki_IsMyw1fe}

[BJDCTF 2nd]TARGZ-y1ng

套娃解压压缩包,压缩包的名称是下一个压缩包的解压密码。

1
2
3
4
5
6
7
8
9
10
import zipfile

def Unzip(fileName):
while True:
password = fileName.split('.')[0]
zip = zipfile.ZipFile(fileName,'r')
zip.extractall(pwd=password.encode("UTF-8"))
fileName = zip.namelist()[0]
zip.close()
Unzip("hW1ES89jF.tar.gz")

解压到最后即可得到 flag 文件。

1
BJD{wow_you_can_rea11y_dance}

[HBNIS2018]excel破解

010 editor 打开文件,可以直接找到 flag。

1
CTF{office_easy_cracked}

喵喵喵

使用 StegSolve 可解出一张图片。

保存下来修正图片文件头并大致修正图片高度后可得一二维码,可将其反色。

扫描二维码可以得到一个百度网盘分享链接,把文件下载下来,得到一个压缩包。看了 WriteUp 才知道这里本来有个 hint 是 NTFS,于是上 NTFS 流分析。压缩文件必须使用 WinRAR 去解压才能找到文件流,得到一个 pyc 文件,反编译如下。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/usr/bin/env python
# visit http://tool.lu/pyc/ for more information
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]

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']

写个解密函数。

1
2
3
4
5
6
7
8
def decode():
cipherText = ciphertext[::-1]
flag = ""
for i in range(len(cipherText)):
s = int(cipherText[i]) - 10 if i % 2 == 0 else int(cipherText[i]) + 10
s = chr(s ^ i)
flag += s
return flag

可得到 flag。

1
flag{[email protected]_Cl3veR_C1Ever!}

[ACTF新生赛2020]base64隐写

压缩包解压得到文本文档,使用 Base64 隐写工具可解出 flag。

1
ACTF{6aseb4_f33!}

[HBNIS2018]来题中等的吧

解压得到一张图片,转换为摩斯电码。

text
1
.- .-.. .--. .... .- .-.. .- -...

将摩斯电码解出即得 flag。

1
flag{ALPHALAB}

[SWPU2019]伟大的侦探

010 editor 下编辑为 EBCDIC 可见压缩包密码 wllm_is_the_best_team!。解压压缩包后对照小人跳舞得解密表可得flag。

1
flag{iloveholmesandwllm}

黑客帝国

解压文件得到一个文本文档,里面有很多数据。观察容易得出 52 61 72 对应 Rar,因此数据是个压缩文档,编写脚本将其还原。

1
2
3
4
5
import binascii
hexData = open('7ecb86887bd03535a7f9959e934e901e.txt').read()
file = open('7ecb86887bd03535a7f9959e934e901e.rar', 'wb')
file.write(binascii.unhexlify(hexData))
file.close()

使用 ARCHPR 爆破得到密码 3690。

解压得到一个图片文件,将文件头修正后打开图片即可得到 flag。

1
flag{57cd4cfd4e07505b98048ca106132125}

[WUSTCTF2020]find_me

解压所得的图片的属性中发现盲文字符 ⡇⡓⡄⡖⠂⠀⠂⠀⡋⡉⠔⠀⠔⡅⡯⡖⠔⠁⠔⡞⠔⡔⠔⡯⡽⠔⡕⠔⡕⠔⡕⠔⡕⠔⡕⡍=。使用加解密工具解密可得 flag。

image-20210127124644280

1
wctf2020{y$0$u_f$1$n$d$_M$e$e$e$e$e}

弱口令

压缩文件备注有内容,复制到 VS Code 可知是摩斯电码。

解出摩斯电码可得 HELL0FORUM,将其作为压缩包密码解压出图片。这里需要使用 Cloacked Pixel 去解密得出 flag。

1
flag{jsy09-wytg5-wius8}

[MRCTF2020]你能看懂音符吗

将压缩包文件头修正后得到一个文档。根据文档提示,将文档解压后读取 document.xml 可以发现音符。

text
1
♭♯♪‖¶♬♭♭♪♭‖‖♭♭♬‖♫♪‖♩♬‖♬♬♭♭♫‖♩♫‖♬♪♭♭♭‖¶∮‖‖‖‖♩♬‖♬♪‖♩♫♭♭♭♭♭§‖♩♩♭♭♫♭♭♭‖♬♭‖¶§♭♭♯‖♫∮‖♬¶‖¶∮‖♬♫‖♫♬‖♫♫§=

将其放到对应的加解密工具里解密即可得到 flag。

image-20210127132118790

1
MRCTF{[email protected]~}

john-in-the-middle

使用 Wireshark 分析流量包,筛选 http 条目,可以导出很多图片。使用 StegSolve 解隐写可以发现一张图片中出现了一条线。

对应另外一张图的暗示,将线条补齐获得旗帜(flag)。

于是使用 StegSolve 将这个两个图片 Combine 在一起分析,得到 flag。

1
flag{J0hn_th3_Sn1ff3r}

[SWPU2019]你有没有好好看网课?

解压得到很多文件,首先根据压缩包备注对 flag3.zip 使用 ARCHPR 爆破得到密码 183792。

解压得到一个视频,在 Premiere 下打开逐帧播放可以得到信息。

其中第一段是 Tap Code,使用对应的码表可解出为 wllm

1
2
3
4
5
6
  1  2  3  4  5
1 A B C/K D E
2 F G H I J
3 L M N O P
4 Q R S T U
5 V W X Y Z

第二段直接 base64 解码为 up_up_up。将其拼合可得 wllmup_up_up。将其作为解压密码解压 flag2.zip,得到一张图片。

使用 010editor 打开图片可以直接找到 flag。

1
swpuctf{A2e_Y0u_Ok?}

[GUET-CTF2019]KO

将得到的内容直接 Ook! 解码即可得 flag。

1
flag{welcome to CTF}

[HBNIS2018]caesar

打开之后得到一串文本 gmbhjtdbftbs,使用凯撒加密的工具解密可得 flag。

1
flag{flagiscaesar}

zip

解压之后得到了很多 zip 文件,根据提示需要提取内容,但是压缩包需要密码,文件大小为 4 字节,于是尝试 CRC 爆破。写个脚本提取内容。

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
import binascii
import zipfile
import string

base64StrDictionary = string.ascii_letters + string.digits + '+' + '/' + '='

def CRCZipFile(zipPath):
return zipfile.ZipFile(zipPath).getinfo("data.txt").CRC

def CrackData(sampleCRC):
for i in base64StrDictionary:
for j in base64StrDictionary:
for k in base64StrDictionary:
for h in base64StrDictionary:
data = i + j + k + h
if sampleCRC == (binascii.crc32(data.encode())):
return data
def CrackZip():
data = ""
for i in range(68):
fileName = "b2ca8799-13d7-45df-a707-94373bf2800c\\out{}.zip".format(i)
data += CrackData(CRCZipFile(fileName))
print(data)
print(data)

CrackZip()

得到了一串 base64 字符串。

text
1
z5BzAAANAAAAAAAAAKo+egCAIwBJAAAAVAAAAAKGNKv+a2MdSR0zAwABAAAAQ01UCRUUy91BT5UkSNPoj5hFEVFBRvefHSBCfG0ruGnKnygsMyj8SBaZHxsYHY84LEZ24cXtZ01y3k1K1YJ0vpK9HwqUzb6u9z8igEr3dCCQLQAdAAAAHQAAAAJi0efVT2MdSR0wCAAgAAAAZmxhZy50eHQAsDRpZmZpeCB0aGUgZmlsZSBhbmQgZ2V0IHRoZSBmbGFnxD17AEAHAA==

将其解码后得到一个文件,根据文件尾 C4 3D 7B 00 40 07 00 可知是 Rar 文件,补全修正文件头。打开文件即可在文件备注处看到 flag。

1
flag{nev3r_enc0de_t00_sm4ll_fil3_w1th_zip}

[MRCTF2020]ezmisc

010 editor 打开文件发现提示 CRC Mismatch。于是打开脚本爆破图片宽高,得到 hex: 0x1f4 0x1c8,对应修正之后打开图片可得 flag。

1
MRCTF{1ts_vEryyyyyy_ez!}

[HBNIS2018]低个头

这波就蛮神奇的,根据给出密文 EWAZX RTY TGB IJN IO KL 用手指划键盘可得出 CTF 三个字符。

1
flag{CTF}

[GXYCTF2019]SXMgdGhpcyBiYXNlPw==

题目 base 解码之后得到 Is this base? 的信息。感觉在暗示 base64 隐写,拿出脚本跑一下得到 flag。

1
GXY{fazhazhenhaoting}

[ACTF新生赛2020]NTFS数据流

使用 NTFSStreamEditor2 扫描,得出 flag 文件。

1
ACTF{AAAds_nntfs_ffunn?} 

[RoarCTF2019]黄金6年

010 editor 打开视频文件,在文件最后可以找到一串 base64 字符。

text
1
2
3
UmFyIRoHAQAzkrXlCgEFBgAFAQGAgADh7ek5VQIDPLAABKEAIEvsUpGAAwAIZmxhZy50eHQwAQAD
Dx43HyOdLMGWfCE9WEsBZprAJQoBSVlWkJNS9TP5du2kyJ275JzsNo29BnSZCgMC3h+UFV9p1QEf
JkBPPR6MrYwXmsMCMz67DN/k5u1NYw9ga53a83/B/t2G9FkG/IITuR+9gIvr/LEdd1ZRAwUEAA==

将其解码后保存发现是个需要密码的压缩文档。回到文档中找提示,发现了二维码。

稍带处理后扫描得出 i play ctf 的字样,拼接发现不对,但是实在找不到了,上网看了一波 WriteUp 发现还有个 want,于是成功解压,得到了 flag。

1
roarctf{CTF-from-RuMen-to-RuYuan}

间谍启示录

挂载磁盘到本地,发现一个 exe,根据暗示运行一次 exe,发现是自解压,同时生成了一些文件,其中的某一些被解压后脚本删除了。于是不用自解压,直接 7-zip 打开,发现有个 flag.exe。

解压出来运行之后即会生成 flag。

1
Flag{379:7b758:g7dfe7f19:9464f:4g9231}

我吃三明治

用 010 editor 打开解压的图片,发现在文件尾部有一串字符串,后面接着另一张图片。图片提取出来之后是一张朴实的三明治图片。字符串用 base32 解码之后即为 flag。

1
flag{6f1797d4080b29b64da5897780463e30}

[SUCTF2018]single dog

010 editor 打开文件可以发现很多文件,foremost 分离一下得到一个压缩包。压缩包中有一个文本文档,其中是 aaencode 的代码。

将代码复制到工具中解密可得如下内容。

1
2
3
4
5
6
function a()
{
var a="SUCTF{happy double eleven}";
alert("双十一快乐");
}
a();
1
SUCTF{happy double eleven}

[V&N2020 公开赛]拉胯的三条命令

找开放的端口,换种思路也就是找有响应且建立连接的端口。打开 Wiresahrk 分析流量包,筛选 tcp.flags == 0x010 || tcp.flags == 0x02 找到全部 TCP 建立连接与相应的数据包,找到二者交替出现的端口,即为开放的端口。筛选之后找出以下端口。

text
1
2
3
4
5
21
22
631
801
3306

根据提示可知 flag。

1
flag{21226318013306}

[安洵杯 2019]吹着贝斯扫二维码

解压得到一堆图片和一个压缩包,将二维码拼好。

扫描二维码得到信息 BASE Family Bucket ??? 85->64->85->13->16->32。将压缩包备注取出,按照如上步骤倒序操作,得到了 ThisIsSecret!233。将其作为压缩包密码解压即可得到 flag。

1
flag{Qr_Is_MeAn1nGfuL}

从娃娃抓起

根据提示可知,给出的密文为两种汉字编码,四位数字描绘一个汉字的大概就是标准中文电码。对应解密之后为如下内容。

剩下的英文字符描绘汉字的编码联系到各种输入法,容易猜想到是五笔输入法,将其转换后得到 也要从娃娃抓起。再根据提示将上述内容拼接后转为 MD5,得到 flag。

1
flag{3b4b5dccd2c008fe7e2664bd1bc19292}

小易的U盘

第 32 个副本 exe 放到 IDA 里看字符串可以直接看到 flag。

1
flag{29a0vkrlek3eu10ue89yug9y4r0wdu10}

[ACTF新生赛2020]swp

Wireshark 打开流量包筛选 http 条目,分离出 secret.zip,根据 hint.html 的内容得知压缩包是伪加密。

修正压缩包伪加密,解压之后用 010 editor 打开 .swp 文件,可以直接找到 flag。

image-20210127175642551

1
actf{c5558bcf-26da-4f8b-b181-b61f3850b9e5}

百里挑一

Wireshark 打开数据包,发现很多图片流量,使用文件>导出对象将整个 HTTP 对象导出,在图片文件的备注中可以发现一半 flag。

根据文件名再去追踪对应的 TCP 流,猜测剩下的部分也存在 Exif 中。跟踪到 TCP 流 114,可以在 Exif 中找到剩下半个 flag。

1
flag{ae58d0408e26e8f26a3c0589d23edeec}

[WUSTCTF2020]alison_likes_jojo

010 打开 boki.jpg,发现其尾部有压缩文档。

binwalk -e 分离出来,使用 ARCHPR 爆破得到密码 888866。

解压后得到一个文本文档,内容是 WVRKc2MySkhWbmxqV0Zac1dsYzBQUT09。三重 base64 解密之后得到 killerqueen

直接把它作为 flag 发现并不正确,于是猜测为 key,尝试对 jljy.jpg 进行 outguess,得到 flag。

1
wctf2020{pretty_girl_alison_likes_jojo}

[GUET-CTF2019]zips

首先使用 ARCHPR 爆破 222.zip,得到密码 723456。

解压之后得到 111.zip,修正伪加密之后解压出 flag.zip 和 start.sh,根据脚本内的内容可知 flag.zip 的密码为出题时的时间。结合 111.zip 和 flag 的修改时间确定范围,使用 ARCHPR 爆破出密码。

1
2
3
#!/bin/bash
#
zip -e --password=`python -c "print(__import__('time').time())"` flag.zip flag

image-20210127184534823

解压 flag.zip 就可以得到 flag。

1
flag{fkjabPqnLawhvuikfhgzyffj}

[安洵杯 2019]Attack

Wireshark 分析数据包,从数据流中分理出包含 flag 的压缩文档。

根据压缩包文档备注,得知需要找到 administrator 的密码,于是从数据包中导出 lsass.dmp,使用 mimikatz 提取出密码。

使用提取出的密码 W3lc0meToD0g3 解压压缩包即得到 flag 文件。

1
D0g3{3466b11de8894198af3636c5bd1efce2}

二维码

简单得拼一下,然后用微信扫即可得 flag。

1
flag{7bf116c8ec2545708781fd4a0dda44e5}

[WUSTCTF2020]爬

010 editor 打开文件后确定为 pdf 文件,修正拓展名。使用 Acrobat DC 打开 pdf 文件,根据提示将图片移开,得到如下图片。

text
1
0x77637466323032307b746831735f31735f405f7064665f616e645f7930755f63616e5f7573655f70686f7430736830707d

将上述图片中的文字提取出来,利用十六进制转 ASCII 可得 flag。

1
wctf2020{[email protected]_pdf_and_y0u_can_use_phot0sh0p}

[WUSTCTF2020]girlfriend

解压得到一段音频,听了一段之后分辨出是 DTMF。尝试使用在线解密工具解密。

得到如下内容。

text
1
999*666*88*2*777*33*6*99*4*444*777*555*333*777*444*33*66*3*7777

然后对应手机九键进行解密,可得如下内容。

text
1
YOUAREMXGIRLFRIENES

对内容进行修正并猜测,就可以得出 youaremygirlfriends

1
flag{youaremygirlfriends}

[MRCTF2020]CyberPunk

运行程序之后提示检测时间,于是把系统时间更改到一致即可得到 flag。

1
MRCTF{We1cOm3_70_cyber_security}

USB

binwalk 发现解压出来的文件中有几个压缩文档,binwalk -e 提取出来。

得到了一个 USB 流量的流量包,使用 "D:\Program Files\Wireshark\tshark.exe" -r key.pcapng -T fields -e usb.capdata > usbdata.txt 分离出 USB 的 Leftover Capture Data,使用 UsbKeyboardDataHacker 来进行分析,得到如下字符串。

text
1
aababacbbdbdccccdcdcdbbcccbcbbcbbaababaaaaaaaaaaaaaaaaaakey{xinan}

由 RAR 文件结构可知其 HeadType 应为 0x74,将其修正之后解压压缩文档,得到一张图片。

StegSolve 可解出一张二维码,扫描可得如下内容。

text
1
ci{v3erf_0tygidv2_fc0}

xinan 为密码,使用 Vigenère Decode 对上述内容操作,再用以 2 为密钥的栅栏密码解密即可得到 flag。

1
flag{vig3ne2e_is_c00l}

[SWPU2019]Network

TTL 的题目,把网上的脚本稍微改一点,可以提取出一个压缩文档。

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
import binascii

with open('ttl.txt') as f:
lines = f.readlines()
n_num = []

for i in lines:
if i != '\n':
n_num.append(int(i))

rlt = ''
for i in range(0, len(lines)):
tmp = bin(n_num[i])[2:]
tmp = '0' * (8 - len(tmp)) + tmp
rlt += tmp[0:2]

rlt2 = ''
for i in range(0, len(rlt), 8):
rlt2 += chr(int(rlt[i:i + 8], 2))
with open('fi.txt', 'w') as f:
f.write(rlt2.rstrip())

hexData = open('fi.txt').read()
file = open('fi.zip', 'wb')
file.write(binascii.unhexlify(hexData))
file.close()

修正所得压缩包的伪加密,得到一个文本文档。对其循环 base64 解码即可得到 flag。

1
flag{189ff9e5b743ae95f940a6ccc6dbd9ab}

[SUCTF2018]followme

Wireshark 分析流量包,跟到一个 POST 请求处可以看到 flag。

1
SUCTF{password_is_not_weak}

[RCTF2019]draw

很像 PC Logo 的代码,初中的时候玩过一些。可惜的是 PC Logo 不兼容 x64 的系统了,只能找了个在线的解释器。将代码粘贴进去执行可以得到一幅图,同时也是 flag。

1
flag{RCTF_HeyLogo}

[XMAN2018排位赛]通行证

先对附件给出的字符串解 base64,再以 7 为 key 做 Rail Fence Cipher Encode,再 ROT13 一次,就可以得到 flag。

1
xman{oyay_now_you_get_it}

[安洵杯 2019]easy misc

解压出的文件中,decode.zip 中包含有备注 FLAG IN ((√2524921X85÷5+2)÷15-1794)+NNULLULL,(√2524921X85÷5+2)÷15-1794) 可算得结果为 7。使用 ARCHPR 爆破出压缩包密码为 2019456NNULLULL,

image-20210127230237637

得到字母对应字符串的替换,推测需要做词频分析。看了看网上的 WriteUp,发现我的盲水印分析不出来,可能是工具有问题,先记下答案往下走,对 11.txt 做词频分析。根据 read目录下的提示,取出词频前 16 的词,可以得到如下结果。

text
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
频数第1: (' ', 75435)
频数第2: ('e', 39628)
频数第3: ('t', 27993)
频数第4: ('a', 25887)
频数第5: ('o', 25809)
频数第6: ('n', 21337)
频数第7: ('r', 20990)
频数第8: ('h', 19535)
频数第9: ('i', 19422)
频数第10: ('s', 18870)
频数第11: ('d', 15932)
频数第12: ('l', 14385)
频数第13: ('u', 9562)
频数第14: ('y', 8293)
频数第15: ('g', 8127)
频数第16: ('w', 7744)

看了看别人的 WriteUp,词频算出来差不多但是内容却差了蛮多的,有点迷。

1
2
- QW8obWdIWT9pMkF-sd5REtRQSQWjVfXiE/WSFTajBtcw= //我拼接的字符串
+ QW8obWdIWT9pMkFSQWtRQjVfXiE/WSFTajBtcw== //官方 WriteUp 的字符串

将拼接出来的字符串 base64 解码一次再 base85 解码一次可以得到 flag。

1
flag{have_a_good_day1}

[MRCTF2020]Unravel!!

在解压出的音频尾部可以找到一串 AES 密文。

text
1
U2FsdGVkX1/nSQN+hoHL8OwV9iJB/mSdKk5dmusulz4=

binwalk 可知 JM.png 中包含多个图片,binwalk -e 分离可以得到一个图片。

aes

将其作为 AES 的 key 可以解出明文 CCGandGulu。将解出的明文作为压缩包密码解压 win-win.zip 可以得到一个音频文件。SilentEye 可解出 flag。

image-20210128003903001

1
MRCTF{Th1s_is_the_3nd1n9}

[GKCTF2020]code obfuscation

将图片修复好,扫描后得到信息 base(gkctf)

binwalk 可知图片中包含一个压缩文件,binwalk -e 分离。根据上一步的信息,尝试后可知压缩包密码为 base58(gkctf),即 CfjxaPF

[UTCTF2020]docx

将 docx 文件解压后在 media 文件夹内可找到 flag 图片。

1
utflag{unz1p_3v3ryth1ng}

[GKCTF2020]Harley Quinn

附件压缩包的备注里有需要用到的工具提示。下载 FreeFileCamouflage,发现是图片提取软件。图片的属性中有 #password# 字样,听到最后发现有 DTMF,上传到工具识别。

得到 btdipdun,因为提示说可读短句,稍作修正后可得到 ctfisfun。将其作为密码提取图片中的隐写即可得到 flag 文件。

1
flag{Pudd1n!!_y0u_F1nd_m3!}

[ACTF新生赛2020]明文攻击

图片的尾部找到一个确实文件头的压缩文档,提取出来可以发现压缩包内的文件 CRC 与 res.zip 中的 flag 一致,明文攻击的要素齐全。

使用 ARCHPR 进行明文攻击,(Pending)

派大星的烦恼

根据题目描述,在图片中找到区块并复制出来得到字符串。

text
1
"DD"DD""""D"DD""""""DD"""DD"DD""D""DDD""D"D"DD""""""DD""D""""DD"D"D"DD""""D"DD""D"""DD"""""DDD""""D"DD"""D"""DD"""D""DD"D"D"DD"""DD""DD"D"D""DD""DD"DD"""D"""DD""DD"DD""D"D""DD"D"D"DD"""D"""DD"""D"DD""DD"""DD"D"D""DD"""D"DD""DD""DD"""""DDD""DD""DD"""D""DD""

将其转换为二进制字符串,得到了如下内容。

text
1
0110110000101100000011000110110010011100101011000000110010000110101011000010110010001100000111000010110001000110001001101010110001100110101001100110110001000110011011001010011010101100010001100010110011000110101001100010110011001100000111001100110001001100

接下来要做的就是想办法把它转换为字符串,经过尝试得出 reverse->From Binary->reverse 的路径,得出正确的 flag。

1
flag{6406950a54184bd5fe6b6e5b4ce43832}

[MRCTF2020]Hello_ misc

010 editor 打开解压出的图片,发现文件尾部有个压缩包,提取出来之后发现压缩包需要密码。将图用 StegSolve 可解得另一张图片。

将其保存下来,打开查看发现压缩包密码信息。

将压缩包解压之后得到了很多数字,看形式像 TTL 信息隐写。用脚本跑出信息 rar-passwd:0ac1fe6b77be5dbe。依此解开 rar 压缩文档之后得到一个 Word 文档。修正其拓展名后打开,得到一串 base64。

text
1
2
3
4
5
6
MTEwMTEwMTExMTExMTEwMDExMTEwMTExMTExMTExMTExMTExMTExMTExMTExMTExMTAxMTEwMDAwMDAxMTExMTExMTExMDAxMTAx
MTEwMTEwMTEwMDAxMTAxMDExMTEwMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTAxMTExMTExMTExMTExMTEwMTEwMDEx
MTEwMDAwMTAxMTEwMTExMDExMTEwMTExMTExMTAwMDExMTExMTExMTExMDAxMDAxMTAxMTEwMDAwMDExMTExMDAwMDExMTExMTEx
MTEwMTEwMTAwMDAxMTExMDExMTEwMTExMTExMDExMTAxMTExMTExMTEwMTEwMTEwMTAxMTExMTExMTAwMTEwMTExMTExMTExMTEx
MTEwMTEwMTAxMTExMTExMDExMTEwMTExMTAxMDExMTAxMTExMTExMTEwMTEwMTEwMTAxMTAxMTExMTAwMTEwMTExMTExMTExMTEx
MTEwMTEwMTAwMDAxMTAwMDAwMTEwMDAwMDAxMTAwMDExMTAwMDAwMTEwMTEwMTEwMTAxMTEwMDAwMDAxMTExMDAwMDExMTExMTEx

对其逐行解密后得到如下内容。

text
1
2
3
4
5
6
110110111111110011110111111111111111111111111111101110000001111111111001101
110110110001101011110111111111111111111111111111111101111111111111110110011
110000101110111011110111111100011111111111001001101110000011111000011111111
110110100001111011110111111011101111111110110110101111111100110111111111111
110110101111111011110111101011101111111110110110101101111100110111111111111
110110100001100000110000001100011100000110110110101110000001111000011111111

替换字符可以更直观得看到 flag。

text
1
2
3
4
5
6
0  0        00    0                            0   000000          00  0 
0 0 000 0 0 0 0 0 00
0000 0 0 0 0 000 00 00 0 00000 0000
0 0 0000 0 0 0 0 0 0 0 0 00 0
0 0 0 0 0 0 0 0 0 0 0 0 0 00 0
0 0 0000 00000 000000 000 00000 0 0 0 0 000000 0000
1
flag{He1Lo_mi5c~}

[BSidesSF2019]zippy

Wireshark 分析流量包,追踪 TCP 流量,可以直接看到压缩文档和压缩文档的密码,提取出来解压文档即可得到 flag 文件。

1
CTF{this_flag_is_your_flag}

粽子的来历

将解压所得的 Word 文档文件修复,打开可得诗句。根据不同的行距将其转化为二进制标记得到如下数据。

text
1
2
3
4
10010100010
101010010011
100100100001
111100100001

分别将其用 MD5 摘要之后得到如下内容。

text
1
2
3
4
447b98f8c092f12a4773ca9809ef6b5f
59f3bfe7c1e00ba34e4558cf295544bc
d473ee3def34bd022f8e5233036b3345
d579f5f8d6c01ec08971fbc0c68f1ddd

其中第三个为 flag。

1
flag{d473ee3def34bd022f8e5233036b3345}

[UTCTF2020]file header

修复附件的 PNG 文件头 89 50 4E 47,查看图片可得 flag。

1
utflag{3lit3_h4ck3r}

[WUSTCTF2020]spaceclub

打开文件后全选可见长短错落的空格。

将短行转换为 0,长行转换为 1,得到如下字符。

text
1
011101110110001101110100011001100011001000110000001100100011000001111011011010000011001101110010011001010101111100110001011100110101111101111001001100000111010101110010010111110110011001101100010000000110011101011111011100110011000101111000010111110111001100110001011110000101111101110011001100010111100001111101

将其转换为十六进制可得 flag。

1
wctf2020{[email protected]_s1x_s1x_s1x}

[ACTF新生赛2020]music

010 editor 打开文件看到文件头为 A1 A1 A1 但是 m4a 的文件头应该为 00 00 00,于是猜测其对文件进行了异或运算。将文件导入 CyberChef 中进行异或得到原文件。打开文件即可听出 flag。

1
actf{abcdfghijk}

[UTCTF2020]basic-forensics

修正文件拓展名,搜索 flag 即可。

1
utflag{fil3_ext3nsi0ns_4r3nt_r34l}

[SCTF2019]电单车

这题是真的少信息了,原本应该有个题目描述的。要找的是信号的地址位的 20bit。使用 Audition 转写即可得到 flag。

1
flag{01110100101010100110}

[*CTF2019]otaku

(Pending)

hashcat

010 editor 打开文件后补全拓展名。使用 AOPR 进行密码爆破得到密码为 9919。

image-20210128143859208

尝试后修正拓展名为 ppt,使用 PowerPoint 打开文件后在倒数第二页可找到 flag。

1
Flag{okYOUWIN}

真的很杂

binwalk -e 分离出一个 apk 文件,使用 apktool 反编译文件。

查看 MainActivity.smali 可以看到如下内容。

text
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
.line 32
.local v6, "text":Landroid/widget/TextView;
const-string v0, "flag{25f991b27f"

.line 33
.local v0, "True1":Ljava/lang/String;
const-string v1, "c"

.line 34
.local v1, "True2":Ljava/lang/String;
const-string v2, "dc2f7a82a2b34"

.line 35
.local v2, "True3":Ljava/lang/String;
const-string v3, "3"

.line 36
.local v3, "True4":Ljava/lang/String;
const-string v4, "86e81c4}"

拼接起来即得到 flag。

1
flag{25f991b27fcdc2f7a82a2b34386e81c4}

[湖南省赛2019]Findme

解压得到五个图片,分别从五个图片中得到 flag 的一部分。

在第二幅图的文件尾部有一个压缩文档,文件头以 7z 开头,可是之后却是 03 04 于是猜测其实是个 zip 文档。将 7z 都替换为 PK 以修正文档。修正之后解压文档得到一堆文本文档,推测有用的信息大小不一样,于是将其按大小排序,找到 618.txt。其中包含信息如下。

text
1
You find it: 1RVcmVfc

第五幅图的尾部有如下信息。

text
1
I give U a gift:Yzcllfc0lN

第四幅图的尾部有如下信息。

text
1
another part:cExlX1BsY

第三幅图用 010 editor 打开的时候运行模板会因为 CRC 不匹配报错,而这些 CRC 值都只有最后两位,将其提取出来转 ASCII 的带如下信息。

text
1
33 52 6C 5A 33 30 3D --> 3RlZ30=

第一幅图打开时发现了 IDAT 缺失的情况,将其补齐修正。

再使用脚本爆破图片宽高,得到 ('hex:', '0xe3', '0x1c5')。将图片宽高修正。再使用 StegSolve 可解出一个二维码。

修正定位码之后扫描可得如下内容。

text
1
ZmxhZ3s0X3

将内容片段拼接,base64 解码即可得到 flag。

text
1
ZmxhZ3s0X3Yzcllfc0lNcExlX1BsY1RVcmVfc3RlZ30=
1
flag{4_v3rY_sIMpLe_PlcTUre_steg}

voip

Wireshark 使用 RTP 分析 VoiP 流量包,直接可以听到电话的音频,不过有些难听懂。

1
seccon{9001IVR}

[UTCTF2020]zero

打开之后是一段示例文字,但是文件的编码有点不一样。

根据题目暗示,找到零宽字符隐写,解得 flag。

1
utflag{[email protected]_4927aajbqk14}

[QCTF2018]X-man-A face

解压得到一张图片,上面有一个残缺的二维码,将其定位码修正。

扫描二维码之后得到一串字符串,将其 base32 解码即可得到 flag。

text
1
KFBVIRT3KBZGK5DUPFPVG2LTORSXEX2XNBXV6QTVPFZV6TLFL5GG6YTTORSXE7I=
1
QCTF{Pretty_Sister_Who_Buys_Me_Lobster}

Business Planning Group

使用 010 editor 打开图片可以发现文件尾存在 bpg 图像,将其分离出来。使用在线的工具可以将其显示并下载为 png 文件。

将图片上的文本提取出来并 base64 解码即可得到 flag。

1
bsides_delhi{BPG_i5_b3tt3r_7h4n_JPG}

[MRCTF2020]pyFlag

压缩包解压后为三张图片,使用 010 editor 打开图片发现每张图片的最后都有一部分信息,将其拼起来之后得到一个压缩文档。使用 ARCHPR 爆破出压缩包密码为 1234。

解压文件后得到加密的 flag。

text
1
G&eOhGcq(ZG(t2*H8M3dG&wXiGcq(ZG&wXyG(j~tG&eOdGcq+aG(t5oG(j~qG&eIeGcq+aG)6Q<G(j~rG&eOdH9<5qG&eLvG(j~sG&nRdH9<8rG%++qG%__eG&eIeGc+|cG(t5oG(j~sG&eOlH9<8rH8C_qH9<8oG&eOhGc+_bG&eLvH9<8sG&eLgGcz?cG&3|sH8M3cG&eOtG%_?aG(t5oG(j~tG&wXxGcq+aH8V6sH9<8rG&eOhH9<5qG(<E-H8M3eG&wXiGcq(ZG)6Q<G(j~tG&eOtG%+<aG&wagG%__cG&eIeGcq+aG&M9uH8V6cG&eOlH9<8rG(<HrG(j~qG&eLcH9<8sG&wUwGek2)

将其经过 base85-->From Hex-->base32-->From Hex-->base64 的解码之后即可得到 flag。

1
MRCTF{Y0u_Are_4_p3rFect_dec0der}

[ACTF新生赛2020]剑龙

解压得到很多文件,pwd 里有一段 aaencode 的 js 代码,解码后得到 welcom3!。将其作为密钥用 Steghide 从图片中解出一段 DES 密文。

text
1
U2FsdGVkX1/7KeHVl5984OsGUVSanPfPednHpK9lKvp0kdrxO4Tj/Q==

结合图片备注中的密钥 @#$%^&%%$) 可以解出如下内容。

text
1
think about stegosaurus

使用 Stegosaurus 工具对 O_O 文件提取数据就能得到 flag。可能是文件有问题,这部分没有复现到。

1
flag{3teg0Sauru3_!1}

[GUET-CTF2019]soul sipse

对音频 Steghide 解隐写解出一个文本,微云下载后的得到一张图片。

修复图片的文件头,并将图片上的内容转为文本,得到如下内容。

text
1
\u0034\u0030\u0037\u0030\u000d\u000a\u0031\u0032\u0033\u0034\u000d\u000a

Unescape Unicode Characters 解码得到如下内容。

text
1
2
4070
1234

将这两行相加得到 flag。

1
flag{5304}

[UTCTF2020]spectogram

音频文件使用 Audition 打开,在频谱部分可以看到 flag。

1
uctflag{sp3tr0gr4m0ph0n3}

[UTCTF2020]File Carving

010 editor 打开文件可以发现文件尾部有压缩包,分离出来解压得到一个 ELF。IDA Pro 打开反编译主程序可看到 flag。

1
utflag{2fbe9adc2ad89c71da48cabe90a121c0}

[RCTF2019]disk

用 010 editor 打开后可以找到 flag 的前半部分。

到这里之后本题又少信息了,原题给了 VeraCrypt 的密码 rctf。这里先用 7z 将 vmdk 解压得到一个 fat 文件。再使用 VeraCrypt 加载。挂载磁盘之后可以得到如下信息。

text
1
Password 2: RCTF2019

使用新的密码挂载 VeraCrypt 的隐藏分区。挂载之后使用 WinHex 载入磁盘可以看到后一半 flag。

1
rctf{unseCure_quick_form4t_vo1umer_and_corrupted_1nner_v0lume}

[HDCTF2019]你能发现什么蛛丝马迹吗

使用 Volatility2 进行镜像分析。首先 imageinfo 确定一下 profile。发现是 Win2003SP0x86, Win2003SP1x86, Win2003SP2x86,随便选一个开始 filescan | grep 桌面 看一下桌面的文件,发现一个 flag.png。将其提取出来,扫描发现是一段加密文本,接着回去找密钥。

首先 pslist 一下,发现没有 notepad 等可能读取文本文档的进程,只有 DumpIt.exe 比较可疑。考虑到在桌面发现的图片,将资源管理器的进程一起 dump 下来。使用 binwalk 分析可以发现资源管理器的 dumpfile 里面有好几个图片。

使用 foremost 将其分离出来,成功发现包含密钥的图片。

使用 AES 将密文解密即得到 flag。

1
flag{F0uNd_s0m3th1ng_1n_M3mory}

[watevrCTF 2019]Evil Cuteness

010 editor 打开图片可在文件尾部发现压缩文档,分离出来解压即可得到 flag 文件。

1
watevr{7h475_4c7u4lly_r34lly_cu73_7h0u6h}

[BSidesSF2019]table-tennis

Wireshark 打开流量包,跟到 ICMP 流量可以发现 Data 里面有 HTML 文档的数据。

筛选 frame.coloring_rule.string == "icmp || icmpv6" 可以看到流量包中的 ICMP 流量,读末尾的数据可以发现关键数据是一段 base64,将其取出后 base64 解码即可得到 flag。

1
CTF{JustAS0ngAb0utP1ngP0ng}

[INSHack2017]sanity

Markdown 文档,打开即可看到 flag。

1
INSA{Youre_sane_Good_for_you}

[INSHack2019]INSAnity

Markdown 文档,打开即可看到 flag。

1
INSA{YouRe_Crazy_and_I_Love_it}

[UTCTF2020]sstv

RX-SSTV 接收可得如下图片。

1
utflag{6bdfeac1e2baa12d6ac5384cdfd166b0}

[INSHack2019]Sanity

Markdown 文档,打开即可看到 flag。

1
INSA{Welcome}

[INSHack2017]insanity-

Markdown 文档,打开即可看到 flag。

1
INSA{Youre_crazy_I_like_it}

[GUET-CTF2019]520的暗示

解压得到一个二进制文件,将其与 0x33 做异或运算可以得到一个 jpg 图像。

查询基站的定位即可得到 flag。

1
flag{桂林电子科技大学花江校区}

[CFI-CTF 2018]webLogon capture

Wireshark 分析数据包,看请求可得一串字符串,URL Decode 之后可以得到 flag。

1
CFI{1ns3cur3_l0g0n}

key不在这里

将解压得到的图片用PhotoShop 反色之后识别二维码,得到如下内容。

text
1
https://cn.bing.com/search?q=key%E4%B8%8D%E5%9C%A8%E8%BF%99%E9%87%8C&m=10210897103375566531005253102975053545155505050521025256555254995410298561015151985150375568&qs=n&form=QBRE&sp=-1&sc=0-38&sk=&cvid=2CE15329C18147CBA4C1CA97C8E1BB8C

将其中的 m 取出来并整理分组,经过 From Decimal --> URL Decode 的路径解码后可得 flag。

1
flag{5d45fa256372224f48746c6fb8e33b32}

很好的色彩呃?

解压得到一张图片,取色器看每部分黄绿色的颜色可知只有最后两位有差别,因此将其取出来。

text
1
61 61 70 6a 65 73

将其从十六进制转十进制即得 flag。

1
flag{aapjes}

[MRCTF2020]摇滚DJ(建议大声播放

附件是一段音频,RX-SSTV 接收可以得到 flag。

1
merak{r3ce1ved_4n_img}

[INSHack2018]Self Congratulation

附件是一张图片,左上角有黑白相间的方块。

将其转译为二进制数据得到如下内容。

text
1
001100010011001000110011001101000011010100110110001101110011100000

去除掉最后两位 00,可以转成 ASCII 字符 12345678

1
flag{12345678}

[INSHack2018]INSanity

Markdown 文档,打开即可看到 flag。

1
INSA{let_the_game_begin!}

[ACTF新生赛2020]frequency

解压得到一个 word 文档,打开发现隐藏文字,同时其备注还有一串字符串。将其二者拼在一起,然后 base64 解码。将解码后的字符串进行字频统计。

text
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
('1: ', ('a', 198))
('2: ', ('c', 194))
('3: ', ('t', 188))
('4: ', ('f', 180))
('5: ', ('p', 174))
('6: ', ('l', 170))
('7: ', ('o', 164))
('8: ', ('k', 159))
('9: ', ('m', 152))
('10: ', ('i', 145))
('11: ', ('j', 139))
('12: ', ('n', 133))
('13: ', ('u', 128))
('14: ', ('h', 116))
('15: ', ('b', 109))
('16: ', ('y', 106))
('17: ', ('g', 100))
('18: ', ('v', 92))
('19: ', ('r', 87))
('20: ', ('d', 79))
('21: ', ('x', 73))
('22: ', ('e', 68))
('23: ', ('s', 61))
('24: ', ('z', 54))
('25: ', ('w', 48))
('26: ', ('q', 41))
1
actf{plokmijnuhbygvrdxeszwq}

greatescape

Wireshark 分析流量包,TCP 流量跟踪到流 19 可以发现 RSA 私钥,将其保存下来。

将密钥导入 Wireshark,跟踪 TLS 流到 80 可以在请求中看到 flag。

1
INS{OkThatWasWay2Easy}

[INSHack2019]gflag

G Code 文件,上传到在线预览的网站可以看到包含 flag 的渲染。

1
INSA{3d_pr1nt3d_fl49}

[GKCTF2020]Sail a boat down the river

视频中可见一个二维码,扫描后可得到一个百度网盘链接。

text
1
https://pan.baidu.com/s/1tygt0Nm_G5fTfVFlgxVcrQ

根据视频中刷卡器的闪烁可以得出摩斯电码。

text
1
2
-.-- .-- ---.. --.
yw8g

下载得到数独文件,将数独解出可得到密钥。

text
1
52693795149137

将明文作为压缩包的解压密码将其解压。使用 OverTure 打开解压出来的谱面,可找到 flag。

1
flag{gkctf_is_fun}

[MRCTF2020]小O的考研复试

简单 JavaScript 算一下可以得到 flag。

1
flag{577302567}

[QCTF2018]X-man-Keyword

Cloacked Pixel 可以解出隐藏的文字。

text
1
PVSF{vVckHejqBOVX9C1c13GFfkHJrjIQeMwf}

使用 Nihilist 对应的解码可以得到 flag。

1
QCTF{cCgeLdnrIBCX9G1g13KFfeLNsnMRdOwf}

[MRCTF2020]寻找xxx

解压得到一段 DTMF 音频,上传到在线工具得到如下内容。

一开始以为这就是 flag,结果是要把数字发给公众号。

1
MRCTF{Oh!!!!!_Y0u_f1nd_my_secret}

Beautiful_Side

解压所得的图片末尾还有一张 PNG 图像,提取出来之后是半个二维码。先将其定位码补全。

将其上传到 QRazyBox 尝试修复二维码。在纠错等级为高,遮掩层模式为 2 的时候发现可以成功提取出 flag。

1
Flag{OQWIC_4DS1A_S034S}

[XMAN2018排位赛]AutoKey

Wireshark 打开发现是 USB 流量包,稍微跟一下发现跟鼠键的很像,于是用脚本提取出来。

text
1
[+] Found : <CAP>a<CAP>utokey('****').decipheer('<CAP>mplrvffczeyoujfjkybxgzvdgqaurkxzolkolvtufblrnjesqitwahxnsijxpnmplshcjbtyhzealogviaaissplfhlfswfehjncrwhtinsmambvexo<DEL>pze<DEL>iz')

整理后得到如下密文。

text
1
Mplrvffczeyoujfjkybxgzvdgqaurkxzolkolvtufblrnjesqitwahxnsijxpnmplshcjbtyhzealogviaaissplfhlfswfehjncrwhtinsmambvexpziz

使用在线网站提供的爆破脚本,可以解出如下内容。

text
1
-674.914569565 autokey, klen 8 :"FLAGHERE", HELLOBOYSANDGIRLSYOUARESOSMARTTHATYOUCANFINDTHEFLAGTHATIHIDEINTHEKEYBOARDPACKAGEFLAGISJHAWLZKEWXHNCDHSLWBAQJTUQZDXZQPF
1
flag{JHAWLZKEWXHNCDHSLWBAQJTUQZDXZQPF}

[DDCTF2018]第四扩展FS

010 editor 打开图片发现文件末尾有未知区块。提取出来仔细甄别可以知道有一个压缩文档。

将压缩文档提取出来,发现需要密码。在 FS.jpg 的备注中发现了字符串 Pactera,将其作为密码可以成功解压文档。根据文档内容可猜测需要做频次分析,于是做频次分析得到如下结果。

1
2
- DDCTF{huanwe1sik4o!} //我这次得到的 flag
+ DDCTF{x1n9shaNgbIci} //网上某 WriteUp 的 flag (我也不知道为什么交这个是对的)

[INSHack2017]hiding-in-plain-sight

binwalk 可以发现解压出来的图片里有多张图片,于是 foremost 将其分离出来。

得到一张包含 flag 的图片。

1
INSA{l337_h4xx0r5_c0mmun1c473_w17h_PNGs}

评论