ctfshow菜狗杯复现

1.杂项签到

1.得到一张png,扔到kali里,pngcheck一下,CRC报错

image

2.尝试改一下宽高,但没有什么用,直接用010搜一下试试,得到flag

image

2.损坏的压缩包

1.打不开,显示损坏,010看一下发现应该是png文件,直接改后缀位.png,得到flag

image

3.谜之栅栏

1.根据名字猜了好久,还以为是颜色对比,但这题就真的只是文件源码比较,010打开,会发现两个文件各有一串L开头的有序字符串。

image
image

2.L都不要,栅栏解密,得到flag

image

4.你会数数吗

1.得到无类型文件,010打开一下,就是txt

![image](https://img20image

2.根据名字猜测就是字频统计,使用脚本

点击查看代码
# -*- coding:utf-8 -*-
# Author: MoChu7
alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*()\_+-/={}[] "#所有正常打印字符
strings = open('./1.txt').read()#读取需要统计频数的文本

result = {}
for i in alphabet:
    counts = strings.count(i)
    i = '{0}'.format(i)
    result[i] = counts

res = sorted(result.items(), key=lambda item: item[1], reverse=True)
num = 0
for data in res:
    num += 1
    print('频数第{0}: {1}'.format(num, data))

print('\n---------------以下是频数从多到少的字符,按照从前到后排序---------------')
for i in res:
    flag = str(i[0])
    print(flag[0], end="")

image

3.得到flag

ctfshow{a1b2d3e4g56i7j8k9l0}

5.你会异或吗

1.文件源码明显是乱码,根据题目提示,猜测要全文件异或的数据就是0x50,使用010打开文件源码

image

2.全选,使用010中的工具-二进制运算-异或,得到正常的图片源码

image

3.保存,png上就是flag

image

6.flag一分为二

1.得到一张png,扔进kali,pngcheck跑一下,显示CRC错误

image

2.010打开,改一下高度,得到flag的一半

image

3.使用WaterMarkH提取水印,得到另一半flag

image

4.拼起来就是完整的flag

ctfshow{FirstP@RTSecondP@rTMikumiku~}

7.You and me

1.跟名字,猜测是盲水印,使用盲水印的脚本,下载网址:https://github.com/chishaxie/BlindWaterMark

python bwmforpy3.py decode 1.png  2.png 3.png

image

2.得到的就是flag

8.我吐了你随意

1.题目提示,应该就是零宽度隐写,拖进kali,用vim看一下类型,使用解码网站

image

2.得到flag

image

9.这是个什么文件?

1.打开后发现是加密的,伪加密,改09为00,得到2

image

2.看到了decode和py等关键词,猜测是pyc文件,在线反编译生成py文件一下,工具网址:https://tool.lu/pyc/

image

3.得到Py文件,直接运行

image

4.得到flag

ctfshow{cdjnjd_565f_GCDH_kcrim}

10.抽象画

1.得到一个txt,猜测是base,可以使用一下basecrack,安装参考:https://www.freebuf.com/sectool/244559.html

image

2.使用命令

python basecrack.py -f 1.txt

根据揭秘结果可以看出是加密套娃,多解几次,最后得到的十六进制,可以看出是png的源码

image

3.使用010建立新的文件,源码为刚才的解密结果

image

4.得到看起来不是很正常的png,使用npiet(也是第一次见这个工具),下载安装地址:https://www.bertnase.de/npiet/

image

5.得到flag

ctfshow{dec8de_frejnv_frejer89}

11.迅疾响应

1.直接用QR扫,扫不出来东西,用在线网站试一下,使用这个网站:https://merricx.github.io/qrazybox/

image

2.使用tools里面的解码

image

3.得到flag的前一半

image

 ctfshow{11451419-1981-

4.将二维码的左侧纠错区涂白,扫描后得到完整的flag

image
image

ctfshow{11451419-1981-landexiangle}

12.我可没有骗你

1.得到的zip是加密的,没有找到密码提示,直接用AR爆破一下,是八位数字密码

image

2.得到的是mp3文件,audacity打开,频谱图没有什么特别的,猜测使用silenteye,直接扔进去软件闪退,是文件的问题,010看一下文件头

image

3.所以文件应该是wav而不是mp3,改后缀,扔到silenteye中,sound qualit调到high,得到flag

image

13.你被骗了

1.得到一个mp3,010打开,开头的副标题是假的flag

image

2.使用mp3stego试一下,密码就是你被骗了的拼音(猜了密码很久)

image

3.在得到的txt中就有flag

ctfshow{chdv_1dcs_cjksnjn_NJDSjdcdjn}

14.一层一层一层地剥开我的♥

1.用bandzip打开会显示损坏,用winrar打开,发现应该是word文件,改后缀为docx

image

2.文档中是一串看不懂的字符,尝试一下转换字体,得到了正常的句子

image

3.没看懂有什么用,010打开看一下zip,发现有另外一个rar

image

4.手撕出来,发现是加密的,猜测密码跟文档上的歌词有关

image

5.猜测密码是这句歌词的数字简谱(因为原歌词不对)

image

11556654433221

6.得到两个文件,010打开名为♥的文件,010报错提示为压缩包文件,仔细对比一下发现是rar文件

image

7.加上52 61 72 21,改后缀为rar,打开发现是加密的,那密码就和jpg有关

image

8.010打开jpg,发现文件末尾有另外一张jpg,手撕出来

image

9.密码就是jpg上的文字

image

10.打开txt,得到颜文字,在线解码,得到flag

image

15.打不开的图片

1.根据最近做的题目,猜测就是png源文件数据逐个字节进行了某种运算,那就直接对照一下89 50 4E 47,发现是每个字节和正常png的字节的和为0x100,例如0x77 + 0x89 = 0x100;0xB0 + 0x50 = 0x100,所以此题的题解就是0x100减去逐个字节(但这里需要注意,如果读取到的字节为0x00,那么就不要使用0x100减了)

image

2.脚本如下:

点击查看代码
f1 = open("./1.png","rb")
f2 = open("./2.png","wb")
all_data = f1.read()
lt = []
for i in all_data:
    if i == 0:
        lt.append(i)
    else:
        lt.append(0x100 - i)
f2.write(bytes(lt))
f1.close()
f2.close()

3.得到的png上面就是flag

image

posted @ 2022-11-24 19:38  CPYQY_orz  阅读(2632)  评论(0编辑  收藏  举报