您当前的位置: 首页 > 

九枕

暂无认证

  • 1浏览

    0关注

    42博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

ctfshow学习记录-misc入门(图片篇-文件结构45-49)

九枕 发布时间:2022-08-16 16:00:00 ,浏览量:1

目录
    • misc45
    • misc46
    • misc47
    • misc48
    • misc49

misc45

提示:有时候也需要换一换思维格式 解答:常规做法没有发现信息,题目提示换个格式,之前我们做的题目里除了png,还有:bmp、jpg、gif。大概率是bmp,因为bmp的数值存储方式和排序和其他的都不太一样。

用windows自带的画图软件打开,另为存为bmp格式。 再用binwalk分离得到了flag。 在这里插入图片描述 在这里插入图片描述 ctfshow{057a722a5587979c34966c2436283e70}

misc46

提示:你见过扶乩吗 解答:打开gif图片后,发现图片在不断的位移,可以考虑这些偏移地址提取出来,看看是否有用。用identity提取gif的信息存储到一个txt文件里。

identify misc46.gif > 46.txt 在这里插入图片描述

写段代码把偏移提取出来,并按照gnuplot需要的格式存放到一个txt文件里。 (buuctf里的梅花香之苦寒来也是个画图题,有兴趣的可以看一下。)

arr=[]
with open('46.txt','r') as file:
    for i in file.readlines():
        content_list=i.split(' ')
        arr.append(content_list[3][8:].replace('+',' '))
with open('46_point.txt','w') as result:
    for i in arr:
        result.write(i+'\n')
#print(arr)

可以在kali里安装个gnuplot。用它画图。 sudo apt-get install gnuplot 在这里插入图片描述

垂直反转就是flag,图片不是很清晰,需要调整一下宽度和大小。ctfshow{05906b3be8742a13a93898186bc5802f} 在这里插入图片描述

(emmm为什么说扶乩呢?做完题也不理解)

misc47

提示:没见过扶乩,那你知道笔仙吗 解答:和36题类似。直接打开png图片是空白的,用浏览器打开发现和misc46一样是个不断位移的图片,是apng。

可以用TweakPNG看一下,但是它好像只能直接修改图片,没有提供导出这些信息的功能。 在这里插入图片描述

写个脚本提取一下。可以看到这个偏移地址都在fcTL中。 在这里插入图片描述

先用010导出一下文件十六进制格式。 在这里插入图片描述

存储后变成这个格式: 在这里插入图片描述

把空格和换行替换为空。 在这里插入图片描述

接下来就是开始写脚本啦~

with open('47.txt','r') as file:
    content=file.read()
    content_list=content.split('6663544C')[1:]
with open('47_point.txt','w') as result:
    for i in content_list:
        result.write(str(int(i[8*3:8*4],16))+' '+str(int(i[8*4:8*5],16))+'\n')

再用gnuplot工具画个图就ok了,记得垂直翻转。 ctfshow{6d51f85b45a0061754a2776a32cf26c4} 在这里插入图片描述

misc48

提示:附件的第(Di)七(Qi)题(Ti)中有提示。本题略脑洞,可跳过 解答:图片用010打开,发现有提示。 统计FF的数量,减1。ctfshow{32个字符} 在这里插入图片描述

这提示指的是连续的FF的长度-1。 在这里插入图片描述

接下来就是用眼瞪,或者各种替换操作之后再写脚本统计。

比如参照misc48先把十六进制数据导出。然后: ---->回车替换为空格 ---->FF替换为XX ---->然后正则匹配替换[^X| ](这样整个文档只剩下XX和一堆空格) ---->再把连续的两个空格替换为回车 ---->单个空格置空 ---->回车再转为GG。(各种替换疯狂操作,能直接替换绝不写脚本,哈哈哈哈) 接下来就可以用了

text="太长了就不放上来了"
list=text.split('GG')
for i in list:
    a=len(i)//2-1
    if(a>=0):
        print(str(hex(a))[2:],end='')

在这里插入图片描述

最后的flag就是:ctfshow{0cb07add909d0d60a92101a8b5c7223a} 在这里插入图片描述

misc49

提示:它们一来就是十六种。本题略脑洞,可跳过 解答: 用010打开发现有很多色块,都是FFE开头。 (emmm提示和wp是怎么联系起来的,这脑洞是我不配了。。) 具体就是提取FFE后面的那个字符。 在这里插入图片描述

导出图片的十六进制格式,然后把回车和空格置空另存一下。 在这里插入图片描述

最后再写个小脚本获取一下flag。

with open('misc49.txt','r')as file:
    content=file.read()
    content_list=content.split('FFE')[1:]
result=""
for i in content_list:
    result+=i[:1]
flag="ctfshow{"+result.lower()[:32]+'}'
print(flag)
#ctfshow{0c618671a153f5da3948fdb2a2238e44}
关注
打赏
1662624000
查看更多评论
立即登录/注册

微信扫码登录

0.0492s