# 时间不多了

1
题目描述: 2023还有两个月不到就过去了,你准备好迎接2024了吗?

解压附件得到很多张二维码和一张日历,用脚本批量扫描看看

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import os
from PIL import Image
from pyzbar.pyzbar import decode

def scan_qrcodes(directory):
with open('qrcode_results.txt', 'w') as output_file:
file_list = sorted(os.listdir(directory), key=lambda x: int(''.join(filter(str.isdigit, x))))
for file_name in file_list:
file_path = os.path.join(directory, file_name)
try:
decoded = decode(Image.open(file_path))
if decoded:
output_file.write(f"File: {file_name}\n")
for obj_number, obj in enumerate(decoded, start=1):
output_file.write(f"QR Code {obj_number} data: {obj.data.decode('utf-8')}\n")
output_file.write("\n")
except Exception as e:
pass
scan_qrcodes('attachment')

发现大部分二维码都是没用的,少部分有 base64 编码

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
File 2: attachment\qrcode_10.png
QR Code data: MiAzIDQgOSAxNSAxNyAxOCAyMyAzMA==

File: qrcode_12.png
QR Code 1 data: NiAxMyAyMCAyNyAyOA==

File: qrcode_14.png
QR Code 1 data: MiAxNSAyMiAxNyAyNCAxNg==

File: qrcode_15.png
QR Code 1 data: NiA1IDQgMTEgMTggMjUgMjYgMjcgMjggMjAgMjE=

File: qrcode_16.png
QR Code 1 data: MiAzIDkgMTUgMjMgMzAgMzE=

File: qrcode_25.png
QR Code 1 data: NSAxMyAyMCAyNyAxNCAyMQ==

File: qrcode_26.png
QR Code 1 data: NiAxOSAyNiAyMSAyOCAyMA==

File: qrcode_27.png
QR Code 1 data: OSAxMCAxMSAxNyAyNCAzMQ==

File: qrcode_35.png
QR Code 1 data: MSAyIDMgOCAxNSAxNiAxNyAyMiAyOSAzMA==

File: qrcode_36.png
QR Code 1 data: MiAzIDkgMTYgMTcgMjQgMzAgMzE=

File: qrcode_37.png
QR Code 1 data: MiA4IDE1IDIzIDI0IDE4IDExIDM=

File: qrcode_38.png
QR Code 1 data: MSAyIDkgMTcgMjMgMzAgMjk=

解码所有的 base64

1
2
3
4
5
6
7
8
9
10
11
12
2 3 4 9 15 17 18 23 30
6 13 20 27 28
2 15 22 17 24 16
6 5 4 11 18 25 26 27 28 20 21
2 3 9 15 23 30 31
5 13 20 27 14 21
6 19 26 21 28 20
9 10 11 17 24 31
1 2 3 8 15 16 17 22 29 30
2 3 9 16 17 24 30 31
2 8 15 23 24 18 11 3
1 2 9 17 23 30 29

接下来就和键盘差不多,在日历上依次拼接连接即可,每一行代表一个字符
flag**{DATESO}**

# 未知的加密

拿到加密的压缩包,先拖入 winhex 看看

末尾说明了压缩包密码的构造,进行掩码爆破

得到密码 Sierting2023,解压压缩包

file 知道是一个磁盘镜像文件,使用取证大师导出其中的 enc(这里也可以使用 7z 解压出 enc,方法挺多的,能导出即可)

接着使用 vc 挂载 enc 文件,密码依然是 Sierting2023

hint 指示我们需要去恢复 swp 文件,swp 文件便是使用 vim 编辑器时因为错误退出而生成的一个备份文件,直接用 vim 命令恢复即可

1
vim -r .flag.swp

flag{d89421ac9cf847b0173ee08a74cfd48b}

# Datas_secret

解压附件得到 vmem 文件,内存取证,使用工具:vol2

首先使用 imageinfo 查看操作系统

1
.\volatility_2.6_win64_standalone.exe -f image.vmem imageinfo

接着使用 filescan 扫描并过滤带有 flag 字段的文件

找到 flag.txt,dump 下来得到 flag

1
.\volatility_2.6_win64_standalone.exe -f image.vmem --profile=Win7SP1x64 dumpfiles -Q 0x0000000007a09f20 -D ./

flag{23030d1c2aa90debdf7757782e9f1ee9}

# 卑劣的手段

同样是内存取证题,使用工具:vol2

但是这次 filescan 过滤 flag 字段并没有找到任何的东西

1
.\volatility_2.6_win64_standalone.exe -f image.vmem --profile=WinXPSP1x64 filescan | findstr flag

于是使用取证大师的内存取证工具导出 excel 表进行寻找
结合题目,找到了名称为 Chuyin 的文件夹,使用 vol2 进行 filescan

1
.\volatility_2.6_win64_standalone.exe -f image.vmem --profile=WinXPSP1x64 filescan | findstr Chuyin

找到一张 png,dump 下来

1
.\volatility_2.6_win64_standalone.exe -f image.vmem --profile=WinXPSP1x64 dumpfiles -Q 0x0000000002d44eb0 -D ./

zsteg 一把梭

flag{Hat3une_M1ku}

# IC-Card

这题我个人感觉是比较难的一道题,因为之前没有碰到过 ICcard 的知识点,趁着这次机会记录一下

首先先去了解一下 IC 卡的扇区构造

一个扇区分为 4 个区块,每个区块也就是 16 字节,这里使用 winhex 进行查看 bin 文件

这里所选中的是 0 扇区 1 区块,记录了持卡人的姓名和生日

https://www.bchrt.com/tools/hex-to-ascii/

区块 2 便是手机号和余额

这里能看到为 18888888888,580

根据 IC 卡的扇区构造可以知道,扇区 1 的数据存储 0 在前

因此需要将这里的数据进行逆序再进行编码转换

1
2
3
a = "00 00 00 00 13 66 13 47 13 36 13 E6 13 37 13 17"
s = a[::-1]
print(s)

得到 q1s1n1c1t1f1,便是 IC-Card 中包含的密码

解压压缩包,得到 tar 的镜像文件

使用 docker 进行导入

1
2
3
docker load -i card_image.tar #导入tar镜像
docker images #查看镜像ID
docker run -it [IMAGE ID] /bin/sh #运行

最终在根目录下解码 base64 得到 flag

flag{f11agggiveyou!!!}