2024BuildCTF-MISC全解
fffffilm 发表于 江西 CTF 330浏览 · 2024-10-26 02:15

MISC

EZ_ZIP

图片分离得到压缩包。里面是一个嵌套压缩包,让GPT搓一个脚本

import zipfile
import os
import shutil

# 设置初始压缩包名
current_zip = '00000017.zip'
save_directory = 'extracted_file'  # 设置保存最里面文件的目录

# 创建保存目录
if not os.path.exists(save_directory):
    os.makedirs(save_directory)

# 解压层数计数
level = 0

while True:
    with zipfile.ZipFile(current_zip, 'r') as zip_ref:
        # 获取压缩包内的文件名
        inner_file = zip_ref.namelist()[0]
        #print(f"正在解压第 {level + 1} 层: {inner_file}")

        # 解压缩文件
        zip_ref.extract(inner_file)

    # 在 with 语句块外执行删除,确保 zip 文件不再被占用
    os.remove(current_zip)

    # 设置下一次要解压的文件
    current_zip = inner_file
    level += 1

    # 检查文件是否为最后一个,停止解压
    if not inner_file.endswith('.zip'):
        #print(f"解压完成,最里面的文件是: {inner_file}")
        # 将最里面的文件保存到指定目录
        shutil.move(inner_file, os.path.join(save_directory, inner_file))
        #print(f"文件已保存到: {save_directory}/{inner_file}")
        break

运行报错了,说RuntimeError: File <ZipInfo filename='flaggggggg.txt' compress_type=deflate filemode='-rw-rw-rw-' file_size=51 compress_size=53> is encrypted, password required for extraction。但是没关系flaggggggg.zip我们已经拿到了

是一个伪加密,随波逐流修了就好了。

BuildCTF{Z1p_p@ck@g3s_@r3_@_v3ry_1n73r3s7ing_thing}

E2_?_21P

因为题目没给什么提示。除了这个:

什么??crc校验失败????

先爆破看看,没反应。尝试伪加密后,解压爆CRC错误了。自己建了一个压缩包来和题目给的压缩包结构进行对比。

尝试过后,改成这样成功打开


解出来是一个BF编码

+++++ +++[- >++++ ++++< ]>++. <++++ +++[- >++++ +++<] >++.< +++[- >---< ]>--- .+++. ----- ---.< +++++ [->-- ---<] >---- ----. <++++ [->++ ++<]> +.<++ +[->- --<]> ----- .<+++ ++++[ ->+++ ++++< ]>+++ +.<++ +++++ [->-- ----- <]>-- ----. <++++ +[->+ ++++< ]>+++ +.<++ ++++[ ->--- ---<] >---- --.<+ ++[-> +++<] >+.<+ ++++[ ->+++ ++<]> +++++ .<+++ ++[-> ----- <]>-- -.<++ ++++[ ->+++ +++<] >++++ ++++. +++++ +++.< ++++[ ->--- -<]>- ----. <++++ [->++ ++<]> .<+++ ++++[ ->--- ----< ]>--- ----- ----- -.++. .<+++ ++++[ ->+++ ++++< ]>+++ +++.+ ++.-. <+++[ ->--- <]>-- ----. <++++ ++[-> ----- -<]>- ----- ----. ++++. <++++ ++[-> +++++ +<]>+ +++++ .<+++ +++[- >---- --<]> ----- ---.< +++[- >+++< ]>+++ ++.<+ ++[-> ---<] >---. <++++ ++[-> +++++ +<]>. <++++ ++[-> +++++ +<]>. <


BuildCTF{Da7A_Cowbr355lon_15_3A5Y}

白白的真好看

拿到四个文件

Flag1:BuildCTF{Th3_wh1t3

Flag2:_wh1t3_y0u_s33


Flag3:_1s_n0t_wh1t3}

汉信码扫出来一个连接,用连接生成二维码,扫完拿到公众号异步社区


回复雪

用snowsnow作为密码拿到flag3,这里不能-C指定文件,不知道为什么


拼一下flag

BuildCTF{Th3_wh1t3_y0u_s33_1s_n0t_wh1t3}

有黑客!!!

CTF-neta秒了

如果再来一次,还会选择我吗?

将password.png用puzzlesolver逆序一下拿到原图


key:8!67adz6

修一下key.jpg

import cv2
import numpy as np

# 读取图像
image = cv2.imread('key.png', cv2.IMREAD_GRAYSCALE)

# 获取图像的高度和宽度
height, width = image.shape

# 遍历每一列
for col in range(width):
    # 获取这一列的所有像素
    column_pixels = image[:, col]

    # 检查是否同时存在黑色 (0) 和白色 (255) 像素
    if 0 in column_pixels:
        # 如果存在黑色像素,整列涂黑
        image[:, col] = 0
    elif 255 in column_pixels:
        # 如果只有白色像素,整列涂白
        image[:, col] = 255

# 保存或显示结果图像
cv2.imwrite('output_image.png', image)
cv2.imshow('Processed Image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

扫描拿到


拿到flag.txt,循环base64就好。用Cyberchef可能会有点卡,但是可以解出来

老色批

LSB

四妹?还是萍萍呢?

先拼图

拼好之后好像没有什么用,是一个公众号

四妹那张图里面010模板最后一个idat里面发现一个压缩包,删掉了504B的头。把压缩包提取出来

解压压缩包后,base64一下拿到png,但是png有点问题,丢随波逐流就好了

BuildCTF{PNG_@nd_H31Sh3nHu@}

一念愚即般若绝,一念智即般若生

阴阳怪气解码拿到s2j6dg@*

佛曰拿到下一步

天书解密

base58

Guesscoin

正确的概率挺大的,一直猜一个就完了。

什么?来玩玩心算吧

随便输入一点触发报错,发现是个eval函数。


那我可不客气了。有过滤,找了之前的一个payload直接通了。这参数是渔网杯的,换了下命令,属于是一题三吃了。

HEX的秘密

magic神力

FindYourWindows

用VC挂载FindYourWindows,用key文件作为密钥。

在M盘(M盘是我挂载的盘,可以随意选择),在M盘的桌面找到假的flag。用winhex打开磁盘,在回收站里面找到flag。从文件夹里面进回收站会到自己电脑里面的回收站,就找不到flag了。

what is this?

替换一下拿到flag

四妹,你听我解释

修复宽高后拿到

发现图片末尾是这样的。

搜索发现是Quoted-printable编码

然后社会主义核心价值观解码

食不食油饼

key:7gkjT!opo

拿到key.jpg和flag.zip

key.jpg存在盲水印(为什么我也不知道,把puzzleSolver功能随便试了几个就出了

这个作为密码拿到flag.txt

IJ2WS3DEINKEM62XMF2DG4SNMFZGWXZRONPVGMC7MVQVG6L5

Black&White

里面全是黑白块,并且是1089张图片,正好是平方数,猜测是33*33的二维码

让GPT写个脚本

from PIL import Image
import numpy as np
import os

# 图片的文件夹路径
folder_path = 'src'  # 替换为实际路径

# 读取图片并存储在列表中
images = []
for i in range(1089):
    img_path = os.path.join(folder_path, f'{i}.jpg')  # 读取从 0.jpg 到 1088.jpg
    img = Image.open(img_path)
    images.append(img)

# 确保图片是相同的大小
img_width, img_height = images[0].size

# 创建一个新的大图像
final_image = Image.new('RGB', (33 * img_width, 33 * img_height))

# 按顺序拼接图片
for idx, img in enumerate(images):
    row = idx // 33
    col = idx % 33
    final_image.paste(img, (col * img_width, row * img_height))

# 保存最终拼接的大图像
final_image.save('final_image.png')

3I8XEDHUCJTARQFOEDX7D+08AC80T8N08Y6948DF2C43C9B6Z2

base45

我太喜欢亢金星君了!

先用随波逐流分开来,然后发现一共有四种图片。每两张中间有一个黑色的。排除掉这个,其他的对应-.

试了前面几个,解出来的morse是B

让GPT写一个脚本

import os
import hashlib

# 文件夹路径
folder_path = 'gifframe'  # 替换为实际路径

# 定义 MD5 映射
md5_mapping = {
    '2CFBADD88594FEBF53A238D4EBBBBAB5': '-',
    '61841A5C1AF24B59967C29A520AB30DA': None,  # 不处理
    '59A6C1A807145F750944A5C809FEC10A': '.',
    '5B143D5BEC0E28700B5CD3B569B96DDB': ' '  # 空格
}

# 存储结果
result = []

# 遍历文件夹中的所有文件,按数字顺序读取
for i in range(258): 
    filename = f'{i}.png'
    file_path = os.path.join(folder_path, filename)

    if os.path.exists(file_path):  # 确保文件存在
        # 计算文件的 MD5 值
        with open(file_path, 'rb') as f:
            file_hash = hashlib.md5(f.read()).hexdigest().upper()  # 读取文件并计算 MD5

        # 根据 MD5 值进行处理
        if file_hash in md5_mapping:
            value = md5_mapping[file_hash]
            if value is not None:  # 如果不是 None,才添加到结果中
                result.append(value)

# 输出结果
final_result = ''.join(result)
print(final_result)

-... ..- .. .-.. -.. -.-. - ..-. ----.-- .-- ....- .---- -.-. --- -- ....- ..--.- -. ....- .-- ..--.- ..-. .---- ... .... -----.-

BuildCTF{BUILDCTFW41COM4_N4W_F1SH}

别真给我开盒了哥

S3901,找一下沿途上的高铁线路,但是实际上那几条平行的都不对

因为那条高速并不是S3901,而是1km右拐到S3901,

思路如图

看一下霸州西车站地址

【车站地址】河北省廊坊市霸州市岔河集乡钱庄村北。

【邮政编码】065799

【区划代码】131081

【上下行车站】在津保铁路上,距天津西站72.6公里,距保定站88.8公里。

BuildCTF{津保铁路}

0 条评论
某人
表情
可输入 255