有趣的文件--实验吧

题目链接:http://ctf5.shiyanbar.com/misc/funfile

这道题的文件一看文件内容的格式就知道是一个bytes文件,于是写一个脚本将其写为bytes文件

import binascii

f = open('funfile', 'r')
text = f.read()
text = text.split()

for i in text:
    if len(i) == 7:
        text.remove(i)

with open('funfile_output.txt', 'wb') as g:
    output = b''
    for i in text:
        output += binascii.a2b_hex(i)
    g.write(output)

看到输出的文件的内容,感觉像是某种格式的文件,但是文件头AFBC1C27,从未见过,在网上搜索也没有什么发现。无意中想到文件格式的大小端,于是按搜索BCAF271C的文件头

image.png

发现是一个7z文件头,并且丢失了部分的文件头数据,补完数据以后,考虑到文件头发生了大小端交换,后面的数据也存在这个问题(经过测试,果然仅修改文件头,提示解压失败),于是修改之前的代码,如下:

import binascii

f = open('funfile', 'r')
text = f.read()
text = text.split()

for i in text:
    if len(i) == 7:
        text.remove(i)

text.insert(0, '7a37')

with open('funfile_output.zip', 'wb') as g:
    output = b''
    for i in text:
        tmpa = i[:2]
        tmpb = i[2:]
        new_byte = tmpb + tmpa
        output += binascii.a2b_hex(new_byte)
    g.write(output)

将其解压以后得到了一张图片

image.png

既然图片内容没有发现什么信息,那么应该是图片隐写,果然在文件头发现了一个神似的字符串,将其base64解码得到flag

image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,100评论 2 89
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,281评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,744评论 25 709
  • WinRAR - 最新版本的更新 版本 5.50 1. WinRAR 和命令行 RAR 默认使用 RAR ...
    王舒璇阅读 2,435评论 0 2
  • 喜乐在心,我说给你听。东边有一棵树,树上住着喜鹊两只,一个叫小猫猫,一个叫得意笑。有一年两只喜鹊爱一只青蛙。...
    逍遥真龙哥哥阅读 493评论 1 6