关注这个靶场的其它相关笔记:攻防世界(XCTF) —— 靶场笔记合集-CSDN博客
0x01:考点速览
本题考察的是 MISC 中的编码相关的内容,要想过此关,你需要具备以下能力:
-
懂得如何使用 Linux 命令
strings
:-
strings
打印可打印的二进制字符(通过-n
参数可以筛选最少显示的字符数)。
-
-
学会静下心找编码的特征。(每隔几个 xxx 会出现一个特殊的 xxx,将特殊值提取出来)
0x02:Write UP
从靶场中将附件下载到本地,你会发现是一个后缀为 .core
的文件。将这个文件丢到 Linux 虚拟机中,通过 strings
命令配合 grep
筛选出包含 {
的内容(Flag 一般都被 {
包裹):
strings 8deb5f0c2cd84143807b6175f58d6f3f.core -n 5 | grep {
# strings xxx.core -n 5 => 打印 xxx.core 中可打印的字符,并且字符长度要至少为 5
# grep { => 从打印结果中筛选出包含 { 的内容
下面是我们筛选出来的符合要求的数据,看着还是比较像 Flag 的,但肯定被加密了:
cvqAeqacLtqazEigwiXobxrCrtuiTzahfFreqc{bnjrKwgk83kgd43j85ePgb_e_rwqr7fvbmHjklo3tews_hmkogooyf0vbnk0ii87Drfgh_n kiwutfb0ghk9ro987k5tfb_hjiouo087ptfcv}
上面的内容被加密了,使用普通的工具无法解密,我们只能采用最原始的找规律来解题。仔细观察上面的数据,你会发现,其每隔四个小写字母就会出现一个大写的字母或者一个奇奇怪怪的字符:
cvq
A
eqac
L
tqaz
E
igwi
X
obxr
C
rtui
T
zahf
F
reqc
{
bnjr
.......
仔细观察上面的大写内容,是不是就是 ALEXCTF{
,明显就是 Flag 嘛,所以我们写一个 Python 脚本依据上面找到的规律解题,即可成功拿到 Flag:
code = 'cvqAeqacLtqazEigwiXobxrCrtuiTzahfFreqc{bnjrKwgk83kgd43j85ePgb_e_rwqr7fvbmHjklo3tews_hmkogooyf0vbnk0ii87Drfgh_n kiwutfb0ghk9ro987k5tfb_hjiouo087ptfcv}'
for i in range(3, len(code), 5):
print(code[i], end="")
# 结果: ALEXCTF{K33P_7H3_g00D_w0rk_up}