LUO 一个兴趣使然的人与他兴趣使然的博客

ISCTF2024-个人题解 [ mingyi ]

⚠️ 本文最后更新于2024年11月16日,已经过了120天没有更新,若内容或图片失效,请留言反馈

Team: F14GThi3f
ID: 雅音宫羽

数字迷雾:在像素中寻找线索

解压附件获得一个图片
扔进随波逐流一把梭
将结尾的 | 改为 } 即可

flag : ISCTF{+9qn1DKdun!glAK}

少女的秘密花园

解压附件得到图片,用 010 打开拉到底,一眼 zip。
选中压缩包数据 右键 > 选择 > 保存选择 提取出来

解压得到 base_misc 再次 010 的打开,又是一眼zip

将后缀补上解压 需要密码
用 ARCHPR 进行一个简单的爆破

解压得到 flag.txt

一眼base64 cyberchef魔法棒直接转为图片保存
然后丢尽随波逐流修复宽高得到

挨个翻造随波逐流224编码表 发现可能是盲文字符

对照解码即可 蓝色是字母 红色是数字
得到 : JFJUGVCGPNBTA3LFL4YG4X3GOIZTK2DNGNXH2===
解 Base32 得到flag
flag : ISCTF{C0me_0n_fr35hm3n}

赢!rar

考点应该是NTFS数据流 不过7Z秒了

7z 打开发现有个123.txt:flag.txt

在注释里找到压缩包密码

密码 : admin123456
直接打开 123.txt:flag.txt 得到

KGJB1J2NvEaJVR3xHNZFdMKsV6G2VTE++
加号结尾 有大写有小写 哪么大抵是 XXencoded
随波逐流解码得到flag

flag : ISCTF{Beat_SfTian!!!!}

老八奇怪自拍照

解压得到一张 png 图片,用 StegSolve 检查各个通道
不难发现在 红色-5 绿色-2 蓝色-1 通道内有明显的 LSB 隐写的特征



一眼 zip 将其保存出来解压

在属性里可以发现作者一栏有信息

1ScTf2024!
用这个作为密码解 StegHide 即可得到 flag.txt

flag : ISCTF{St4gs0lve_Rbg_S4eGh1de_H1de!!!}

File_Format

解压附件得到 flag 文件,将其丢尽 DIE 可以发现这是个 WinAce 文件

搜索后发现可以用 ARCHPR 爆破,那么直接爆破密码

密码 : 241023
将 flag 后缀改为 exe 后用密码解压 即可得到 flag.txt
打开即可以得到 flag

flag : ISCTF{WinACE_is_Easy_Subject_0v0}

watermark

  • 解压附件压缩包
    三个文件 压缩包[🔒] png txt
    txt 提示水印 遂对图片提取盲水印


    key2:64oRvUfta9yJsBv
    txt 大抵也是个文字盲水印
    那么进行一个bing的搜索 找到一个项目:

      - GitHub: [guofei9987/text_blind_watermark: 文本盲水印:把信息隐匿到文本中,put invisible blind watermark into a text.](https://github.com/guofei9987/text_blind_watermark?tab=readme-ov-file)
      - 在线Demo: [文本隐水印](https://www.guofei.site/pictures_for_blog/app/text_watermark/v1.html)

    将文本复制过去直接解密 得到key1

    key1:FAAqDPjpgKJiB6m
    拼起来就是解压密码
    FAAqDPjpgKJiB6m64oRvUfta9yJsBv

  • 解压后得到 flag.txt 打开后一堆文字狗屁不通 那么先尝试进行一个爆搜 成功得到flag

Flag : ISCTF{Watermark_is_used_2_protect%digital*assets}

秘密

先对附件进行一个伪加密的修复
然后解压后获得一张图片
通过附件名或者图片尾后的数据不难推断出是使用了 OurSecret 隐藏了文件
那么直接用 OurSecret 打开,盲猜密码为 isctf,isctf2024,ISCTF,ISCTF2024
成功猜对密码为 ISCTF2024

保存文件 打开

全选发现没有隐藏空格 排除 Snow 隐写
但是文件大小有 627 字节
那么猜测是零宽 默认配置得到flag

Flag : ISCTF{Nic3_t0_m33t_you}

奇怪的txt

根据题目描述的提示 直接写一个脚本将其拼起来

import os

import re

  

def get_sorted_txt_files(folder_path):

    """

    获取文件夹中所有的txt文件,并按其中的数字排序。

    假设文件名中包含数字,并按数字从小到大排序。

    """

    txt_files = [f for f in os.listdir(folder_path) if f.endswith('.txt')]

    # 提取文件名中的数字,用于排序

    def extract_number(filename):

        match = re.search(r'(\d+)', filename)

        return int(match.group(1)) if match else float('inf')

    sorted_files = sorted(txt_files, key=extract_number)

    return sorted_files

  

def select_every_seventh(sorted_files, step=7):

    """

    按照每隔7个选择一个文件的规则,循环选择直到所有文件被选中。

    返回选择的文件顺序列表。

    """

    selected_order = []

    files = sorted_files.copy()

    index = 0

  

    while files:

        index = (index + step - 1) % len(files)

        selected_file = files.pop(index)

        selected_order.append(selected_file)

    return selected_order

  

def write_selected_files_content(selected_files, folder_path, output_file):

    """

    将选择的文件内容写入输出文件中,每个文件的内容之间用换行符分隔。

    """

    with open(os.path.join(folder_path, output_file), 'w', encoding='utf-8') as outfile:

        for filename in selected_files:

            file_path = os.path.join(folder_path, filename)

            with open(file_path, 'r', encoding='utf-8') as infile:

                content = infile.read()

                outfile.write(content + '\n')  # 添加换行符以区分文件内容

  

def main():

    # 设置文件夹路径和输出文件名

    folder_path = r"C:\Users\daydr\Downloads\奇怪的txt"  # 替换为实际的文件夹路径

    output_file = r"C:\Users\daydr\Downloads\奇怪的txt\de\de.txt"  # 输出文件名

  

    # 获取并排序txt文件

    sorted_files = get_sorted_txt_files(folder_path)

    if not sorted_files:

        print("指定的文件夹中没有找到txt文件。")

        return

  

    print("排序后的txt文件列表:")

    for f in sorted_files:

        print(f)

  

    # 选择文件的顺序

    selected_files = select_every_seventh(sorted_files, step=7)

    print("\n选择文件的顺序:")

    for i, f in enumerate(selected_files, 1):

        print(f"{i}: {f}")

  

    # 写入选中文件的内容到输出文件

    write_selected_files_content(selected_files, folder_path, output_file)

    print(f"\n所有选中文件的内容已写入 {output_file}")

  

if __name__ == "__main__":

    main()

然后解几十层 base64 得到flag

flag : ISCTF{@!98sw-&^si92-2$#334-2024!!}

像素圣战

解压后得到一张 png
找了个在线隐写网站,盲猜密码是 ISCTF 得到隐藏信息

10111110011011000011000110111111101100111101001110010110011101110001100100011111110101101101010011110011101001111010011011011111001100100101110111101100010010101110000111001011001001

使用一个B神的神奇小工具解密得到flag

flag : ISCTF{R3verse6_b1n4ry_l0l}

starry sky

解压 得到 3 个文件

txt 里藏了个疑似 Base64 编码的字符串,但无法直接解密出有意义的明文,推测要么是换表要么是DES或AES的密文编码

png 打开失败,用 010 打开,一眼 Base64 编码,扔进 CyberChef 直接解码
还原图片后扔进 010 拉到最低 发现 XORKEY:FF

在结合另一个叫 xor 的文件 那么大抵就是要对其异或 FF

异或后得到一个 wav 文件
听了两秒一耳 SSTV

得到 DESKey:YanHuoLG

那么就可以解密之前的 txt 了
使用 CyberChef 进行一个解密 先尝试不需要 iv 的 ECB 模式

在无填充下可以解密出部分 flag
有填充下则全是乱码
那么再尝试 iv 全为 0 的其他模式解密
成功得到 flag

flag : ISCTF{Y0u_@r3_1ooking_@_st@rry_sky!}

来自天外的信息

Audacity
左上角 -> 文件 -> 导入 -> 原始数据
选择解压出的超大附件
参数根据文件名的提示 选择 64位 320000Hz

导入后一听
大抵还是 SSTV
MMSSTV 过一遍后得到图片

根据图片能大抵猜出是要修个二维码
Greetings from space 后面的符号长得像定位点
下面卫星旁的点阵 左上 右上 右下 缺的部分正好可以跟二维码的定位点对上
而右下放大看的话正好可以看出小定位点
使用一个 QRazybox 进行手绘修复

虽然图片有些地方不清晰 但是清晰的面积已经足够大了
将清晰的部分修复好 再读纠错码就能拿到flag

flag : ISCTF{Th3_ROmaNtic_Of_Rad1o}

By Mingyi On