CTF秀-菜狗杯

文章详细描述了解决一系列CTF挑战的方法,涉及图片格式分析,使用010edit工具查看隐藏数据,修复损坏的压缩包,通过异或操作解密图片中的信息,以及使用盲水印工具提取隐藏的flag。每一步都展示了对二进制数据和图像文件格式深入理解的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、杂项签到

附件是png格式图片,用stegsolve打不开,用kali查看无果,查看图片属性也没有flag,最后用010edit打开,文本搜ctfshow得到flag,或者文本形式打开搜show,真菜

2、损坏的压缩包

下载的压缩包打不开,提示已损坏

根据上一题的经验,放到010edit里看一看,010edit是个好东西,发现文件头是png

修改压缩包后缀png,图片显示flag

3、谜之栅栏 

两张图片找不同,还是用010,这里有个文件比较功能,学到了新知识,往下滚动找不同,发现两处字符串不一样,隔一位取数,题目:栅栏!用工具解栅栏密码

 

4、你会数数吗

 无后缀的文件,最先想到用文本方式打开看看,看到一串字符,可能是统计字符串中字母出现的频数?看了wp上010,用到功能直方图——>无符号字节——>降序排序,新知识

 5、你会异或吗

神秘数字:0x50

附件为png图片,打不开,老惯例放到010里查看

结合题目提示异或0x50,发现D9异或50得89,00异或50得50,1E异或50得4E,17异或50得47,89 50 4E 47 正好是图片格式png的头,现在要写脚本了不会

f=open('misc5.png','rb')#打开文件

d=f.read()#读取文件内容,字节类型

with open('wuwu.png','wb') as ff:#创建wuwu.png,并写入内容

        for dd in d:

                ff.write(bytes([dd^0x50]))

6、flag一分为二

根据提示图片放010,修改高度

 用盲水印工具提取图片上的水印,得到另一半flag,这里用到盲水印工具

7、You and me

两个图片一模一样,猜测是原图加水印图

python3 bwmforpy3.py decode you.png you_and_me.png wm1.png

 

水印即flag:ctfshow{CDEASEFFR8846}

看不到的图片

png结尾一般是

00 00 00 00 49 45 4E 44 AE 42 60 82

 7E异或82=100,A0异或60=100,由此可见把文件异或100即可,上脚本

path = 'misc55.png'
new_path = 'new1.png'
 
def jian(file_path):
    # 以二进制读取图片
    with open(file_path, 'rb') as f:
        data = f.read()
        a=[]
        for i in data:
            if i ==0:
                a.append(i)
            else:
                a.append(0x100 - i)
    with open(new_path, 'wb') as f:
        f.write(bytes(a))
# 调用
jian (path)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值