分析与分离图片中的隐藏文件方法总结

lxx249
2023-12-28 / 0 评论 / 1 阅读 / 正在检测是否收录...

分析与分离隐藏在图片中的文件方法

1. 背景分析

CTF中会遇到给一张图片的情况,其中图片中可能会隐藏一些文件,比如另外的图片或者压缩包文件。

2. 原理分析

以jpg图片为例,一个完整的 jpg 文件由 FF D8 开头,FF D9结尾,图片查看器会忽略 FF D9 以后的内容,因此可以在 jpg 文件中加入其他文件。

1

3. 图片分析

可以使用binwalk进行分析,判断其中是否存在隐藏文件,kali中自带,也可以下载windows中安装

# 分析图片
binwalk 1.png 在kali中
python -m binwalk 1.png 在windows中
# 发现存在多个文件
"""
DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             PNG image, 1536 x 864, 8-bit/color RGB, non-interlaced
140           0x8C            Zlib compressed data, best compression
1193560       0x123658        Cisco IOS microcode, for ""
1318977       0x142041        PNG image, 1536 x 864, 8-bit/color RGB, non-interlaced
2949139       0x2D0013        Zip archive data, encrypted at least v2.0 to extract, compressed size: 64, uncompressed size: 52, name: flag.txt
2949331       0x2D00D3        End of Zip archive, footer length: 22
"""

4. 分离图片文件

注意binwalk分离隐藏一个文件没问题,但是多个文件的隐藏还是建议使用foremost分离

4.1 使用binwalk分离-利用dd

dd if=1.jpg of=1.zip skip=48221 bs=1
解释:if 指定输入文件,of 指定输出文件,skip 指定从输入文件开头跳过48221个块后开始复制,bs设
置每次读写块的大小为1字节

4.2 使用binwalk分离-自动分离

# 在当前目录中生成分离的文件
python -m binwalk -e 1.png

4.3 使用foremost工具分离

# 在当前目录中生成分离的文件
foremost 1.png # 在kali中
foremost.exe 1.png # 在windows中

4.4 使用hex编辑器人工分离

hex编辑器有很多,win下有用得较多的010editor、winhex、UltraEdit等,linux下有hexeditor等

搜索hex字符:zip文件的开头16进制为504B0304、png文件的开头为89504E47,找到这些幻数头,进行人工分离另存为新文件,然后根据幻数头修改文件后缀

参考资料:

分离图片中的隐藏文件方法总结 - 未完成的歌QAQ - 博客园 (cnblogs.com)

【CTF工具】windows上使用binwalk工具 - 哔哩哔哩 (bilibili.com)

0

评论 (0)

取消