青少年CTF练习平台Misc题解

多情

下载解压,打开附件

得到一个压缩包文件和一张图片

分离图片分离图片中的隐藏文件方法总结_读取png中隐藏的压缩包-CSDN博客

由于binwalk和foremost无法使用,我使用的是010,直接裁剪

保存后,得到新的图片

应该为图片隐写,可以使用010或者winhex修改

或者直接拖进随波逐流

得到完整图片

提示:996

打开之前的压缩包发现只有0和1,将996转化成二进制得到1111100100。

刚好有6个1,4个0,刚好与“多情”压缩包中txt的文件名一致,对应压缩包中01的数量,

按照从左到右的顺序(第一个1,第二个1,第三个1,第四个1,第五个1,第一个0……)将文本中的内容进行合并

进行替换得到一串带&#字符

Lrp5mJcdEbbv2bnf6HQSNh

在线解码在线 Unicode 编码转换 | 菜鸟工具 (jyshare.com)

Lrp5mJcdEbbv2bnf6HQSNh

包裹后得到flag

qsnctf{Lrp5mJcdEbbv2bnf6HQSNh}

CTFer Revenge

下载附件,解压打开

导入CyberChef观察

结合题目,得知是一个压缩包经过reverse后的十六进制数据,用CyberChef再reverse回去得到正确的16进制文件

观察发现数据格式不是很标准,需要进行处理才能导入,按照大佬的脚本将行号以及后面的文本区域和空行去掉

def remove_blank_lines(file_name):  
    try:  
        # 创建一个临时文件用于存储非空白行  
        with open(file_name, 'r', encoding='utf-8') as input_file, open(f"{file_name}.tmp", 'w', encoding='utf-8') as output_file:  
            for line in input_file:  
                # 如果行不是空白的,则写入临时文件  
                if line.strip():  
                    line = line[10:]  
                    # 查找第一个'|'字符的位置  
                    pipe_index = line.find('|')  
                    # 如果找到了'|',则去除该字符及其后面的所有字符  
                    if pipe_index != -1:  
                        line = line[:pipe_index]  
                    # 将处理后的行写入临时文件  
                    output_file.write(line)    
        # 删除原文件并将临时文件重命名为原文件名  
        import os  
        os.remove(file_name)  
        os.rename(f"{file_name}.tmp", file_name)  
        print(f"Processed file saved as {file_name}")  
    except FileNotFoundError:  
        print(f"File {file_name} not found.")  
  
# 调用函数,传入你的txt文件路径  
remove_blank_lines(""F:\下载\题目\CTFer Revenge\是什么呢(仔细观察).txt"")

再次使用CyberChef打开.txt文件

保存为zip文件

2024青少年ctf擂台挑战赛round1-CTFer Revenge-CSDN博客

青少年CTF擂台挑战赛 2024 #Round 1-MISC_青少年ctf追光者-CSDN博客

简简单单的题目

下载解压,打开压缩包

查看提示:

qsnctf
解题顺序 key1-- fla2_key-- flag 
傅里叶

根据提示,尝试压缩包key1.zip密码为qsnctf

得到两张图片

将图片key1.jpg拖进010

可以得到,aes加密

U2FsdGVkX1/o1s6+f3X4C0ZEfHGr5SrBYCc8rBHw1IMBplG06hwWgzxnshngG+2d
B1yVvYefSPulcYv/Ur6dMw==

修改图片的高度

将16进制的03E8修改为042C

或者10进制的1000修改为1068

得到key:我沉醉了

在线AES加密 | AES解密 - 在线工具 (sojson.com)

解密得到:flag2的密码是二维码前面加上QSN

还有一张二维码

在ps中打开ctrl+i反转 ,缺少二维码定位符,所以添加二维码定位符

颜色反转 然后添加黑色定位符

将图片另存下来

网上找到二维码定位角

使用wps补齐定位角

最近解码 - 草料二维码解码器

解码得到

Zz123!@#qsn

使用密码QSNZz123!@#qsn打开第二个压缩包文件

得到一张图片

单张图片的盲水印解出 key: qsnctfNB666

利用lsb使用密码解出文件

723014211628022663867378

利用中文电码解密

中文电码查询 Chinese Commercial Code - 标准电报码免费在线查询|姓名电码|美国签证电码 (mcdvisa.com)

密码:青少年们起飞

打开flag压缩包

key.txt里面内容如下

翻译为:无针孔胶片。无任何伪装的表面

⡁⡃⡞⡳⡤⡶⠉⠉⠉⠉=

文本加密为盲文,可自设密码|文本在线加密解密工具 (qqxiuzi.cn)

qsnCTF9999

利用free film Camouflage 解图片

Free File Camouflage – 将文件隐藏在图片里并设置密码-软件玩家 (betaflare.com)

解除文件伪装,使用自定义的密码qsnCTF9999解密

得到2.txt

RGB值 转图片 首先要把{}去掉

编写脚本

from PIL import Image

# 打开txt文件并读取RGB值
with open('2.txt', 'r') as file:
    rgb_values = [tuple(map(int, line.strip().split())) for line in file]




# 计算图片的宽度和高度
width = int(len(rgb_values) ** 0.5)
height = int(len(rgb_values) / width)

# 创建一个新的图片对象,模式为'RGB'
image = Image.new('RGB', (width, height))

# 将RGB值设置到图片的对应位置上
image.putdata(rgb_values)

# 保存图片为PNG格式
image.save('output.png')

运行,得到

图片左右翻转得到

提取文字得到

qsnctf{xcswzj-bewei123456}

Bear

下载解压打开附件

熊曰:呋食食物嘍嗷洞出嗚有眠哮山囑眠拙住訴嗚囑肉拙既寶果動我笨會你出眠嚄寶冬食喜哞吖山噗食類囑出果你盜唬動取噔唬噤樣魚呦爾

熊曰在线工具解码

与熊论道/熊曰加密 - 萌研社 - PcMoe!

得到flag

qsnctf{80038e81-5f67-4085-a70e-77a3fd74cf96}

是我的Hanser!

下载解压,打开附件

得到一个压缩包和一个文本文档

解压压缩包,发现被加密

查看文本文档

使用在线工具https://yuanfux.github.io/zero-width-web/

在线解码

得到Password is : Hanser2024

解密后得到压缩包里的一张图片

使用010打开后,发现flag

补充前缀qsn,成功提交

qsnctf{bb3bdea1fba9b8b940c3cb788d3f0aae}

上网搜索psd文件,得到以下结果

使用PS软件打开文件

发现图片有多个图层

找到flag

  • 21
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值