当前位置: 首页 > news >正文

CTFshow_WriteUp【MISC入门】 - Vincent

图片解题思路

在CTF杂项中,图片解题思路通常围绕隐写术、文件结构分析、元数据挖掘等方向展开,以下是一些常见方法及工具:

一、基础检查与初步分析

  1. 文件类型确认
    使用file命令或十六进制编辑器(如010 Editor)检查文件头,确认是否为真实图片格式。若文件头损坏,需手动修复或进一步分析。
  2. 元数据(EXIF)分析
    通过exiftool查看图片的元数据,如注释、作者、创建时间等。注释字段可能包含Base64编码的字符串或提示信息。
  3. 文件分离与嵌入内容提取
    使用binwalkforemost工具检测文件内嵌的其他文件(如ZIP、RAR),并自动分离提取。若图片尾部附加了压缩包,需提取后解压,可能需密码爆破。

二、隐写分析

  1. 最低有效位(LSB)隐写
    利用stegsolve工具逐通道分析位平面,或使用zsteg自动检测LSB隐写并提取数据。也可通过Python脚本提取像素的最低有效位,转换为ASCII字符。
  2. 颜色通道分离与差异分析
    使用stegsolve或图像编辑软件(如GIMP、Photoshop)分离RGB通道,观察异常色块或图案。例如,某个通道可能隐藏二维码片段或文本信息。
  3. 异或、叠加与反色操作
    对像素值进行异或、反色等操作,可能还原隐藏的内容。例如,对像素RGB值与特定数值异或(如0xFF)后,隐藏信息可能显现。

三、文件结构解析

  1. PNG数据块(Chunks)分析
    使用pngcheck检查PNG文件的数据块完整性及异常。关键数据块如IHDR(定义宽高、位深等)、IDAT(存储压缩后的图像数据)可能隐藏信息。若IHDR宽高篡改,需修复CRC校验后显示隐藏区域。
  2. 数据块提取与重组
    使用十六进制编辑器定位IDAT块,提取Zlib压缩数据并解压,可能包含Flag或加密内容。

四、高级技巧

  1. 频域隐写(DCT/FFT)
    使用stegsolve的FFT功能或Python库(如NumPy、SciPy)分析频域中的异常图案,可能隐藏信息。
  2. 盲水印提取
    使用openstego等工具提取盲水印,对比两张相似图片的差异信息。
  3. 二维码/条形码修复
    使用在线工具(如Online Barcode Reader)或Python库(如pyzbar、OpenCV)修复受损的二维码或条形码,扫描获取Flag。

五、工具推荐

· 隐写分析:stegsolve、zsteg、steghide

· 文件分离:binwalk(kali)、foremost(kali)
· 十六进制编辑:010 Editor、HxD
· 元数据提取:exiftool(kali)

· 图像处理:GIMP、Photoshop、OpenCV

PNG图像浏览工具:TweakPNG

总结:图片解题需结合多维度分析,从基础检查到高级隐写技术,灵活运用工具和脚本。若遇到复杂问题,可尝试组合多种方法,或通过团队协作分工解决。


misc8

┌──(kali㉿kali)-[~]
└─$ binwalk misc8.png DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             PNG image, 900 x 150, 8-bit/color RGBA, non-interlaced
91            0x5B            Zlib compressed data, compressed
3892          0xF34           PNG image, 900 x 150, 8-bit/color RGB, non-interlaced
3954          0xF72           Zlib compressed data, default compression┌──(kali㉿kali)-[~]
└─$ foremost misc8.png 
Processing: misc8.png
|*|┌──(kali㉿kali)-[~]
└─$ ls
公共  模板  视频  图片  文档  下载  音乐  桌面  Desktop  flag.txt  misc8.png  output  py┌──(kali㉿kali)-[~]
└─$ ls output/png 
00000000.png  00000007.png

binwalk分析文件,发现有两张图片

也可以用dd提取图片
dd if ="文件路径" of="输出文件" skip=从哪个字节开始 bs=1
也可以用binwalk命令提取文件
binwalk -e 要分解的文件名 //-e分解出压缩包
binwalk -D=jpeg/文件类型/ 要分解的文件名 //-D或者–dd 分解某种类型的文件

bmp文件格式

主要规则:(以24位bmp为例)

  1. 文件实际大小 头信息+像素+(win的垃圾数)
  2. 头信息 54字节
  3. 像素 24位(三字节)为:RGB 一个颜色共三个字节
  4. win的垃圾数:(Windows默认的扫描的最小单位是4字节,要求数据对齐)
    在win中创建的.bmp文件,如果宽不能被4整除(影响行数据)(高没有影响),
    则会在每一'行末尾'填充随机数,使得能被4整除;
    例:像素大小:201100->存储大小:(201*3)100=603*100(不能被4整除)
    是win将自动每行填充一个字节:603->604

使用事项:

  1. 读取时,先跳过54字节的头信息
  2. 读取颜色时,注意RGB的顺序读取
  3. 读取颜色时,应当按行读取,防止读入垃圾数(不应当偷懒整块读取)
    (或者,传输的文件宽必须能被4整除)

.bmp文件概念

(.bmp)不是非常常见的图片格式,文件太大,不方便压缩,很多网络操作并不支持使用(还是太大了)
但是,(.bmp)文件格式清晰且简单,图像数据完整且直接以二进制显示,非常适合设备操作和相关学习

(.bmp)(全称:bitmap)是win中的标准图像文件格式,可分为两类:
(DDB)设备相关位图(Device Dependent Bitmap)//适用特定设备的图像处理
(DIB)设备无关位图(Device Independent Bitmap)//适用跨设备共享和传输的图像处理
两者在设备中使用都很广

(.bmp)图像深度可以选择:
1bit(单色)/2bit(4色,CGA)/4bit(16色,VGA)/16bit(增强色)/24bit(真彩色,RGB)/256bit等

24bit(三字节)//以RGB顺序排列,各占一个字节,通过三色调成任意一色

文件头(头信息)

文件头包括:bmp文件头和位图信息头(14 + 40 = 54)

  1. bmp文件头(bmp file header):14字节
    bfType: 2字节,文件类型//0x4D42->ASCII:BM//一般不变
    bfSize: 4字节,文件大小//0x0004B436->308278bit->54byte+301KB

    bfReserved1: 2字节,保留位,必须设为0
    bfReserved1: 2字节,保留位,必须设为0

    bfOffBits: 4字节,从头到位图数据的偏移(图片信息开始位置)

  2. 位图信息图(bitmap information):40字节
    biSize: 4字节,信息头大小//0x00000028->40//一般不变
    biWidth: 4字节,像素单位的宽
    biHeight: 4字节,像素单位的高(数据为正->倒立/数据为负->正向)

    biPlanes: 2字节,颜色平面数//0x0001->1//一般不变
    biBitCount: 2字节,比特数/像素数(色彩深度),//24bit例:0x0018->24

    biCompression:4字节,图像的压缩类型,0(BI_RGB)表示不压缩//一般不变
    biSizeImages:4字节,原始位图数据的大小,当用(BI_RGB)格式时,可以设置为0
    biXPelsPerMeter: 4字节,横向分辨率
    biXPelsPerMeter: 4字节,纵向分辨率

    biClrUsed: 4字节,颜色索引数,从biBitCount计算,可以设置为0(不表示没有颜色)//24bit->0xFFFFFF种色
    biClrimportant: 4字节,重要颜色索引数,可以设置为0(每种颜色都重要)

BMP(位图)是Windows操作系统中广泛使用的一种图像文件格式。由于其不经过压缩,BMP文件往往体积较大。本文将详细介绍如何计算BMP文件的大小。 总结来说,BMP文件的大小取决于其分辨率、颜色深度以及是否包含调色板。具体计算方法如下:

  1. 单位像素字节数:根据颜色深度计算。例如,1位(黑白)为1字节,8位(256色)为1字节,24位(真彩色)为3字节。
  2. 总像素字节数:将单位像素字节数乘以图像的宽度和高度。
  3. 调色板大小:若图像含有调色板,一般为1024字节(256*4),其中4字节表示一个调色板项的颜色信息。
  4. 文件头大小:BMP文件头一般为54字节。 详细计算步骤:
  5. 确定图像的宽度和高度,记为Width和Height。
  6. 确定颜色深度,记为BitsPerPixel(bpp)。
  7. 根据颜色深度计算单位像素字节数:BytesPerPixel = bpp / 8。
  8. 计算总像素字节数:TotalBytes = Width * Height * BytesPerPixel。
http://www.jsqmd.com/news/59490/

相关文章:

  • 博士留学中介排名:开启学术新篇章
  • 造纸用短纤维工厂推荐:山东鲁纤,品质可靠
  • ctfshow_CTF_WriteUp |【_新手必刷_菜狗杯】 - Vincent
  • 2025年12月杭州工厂获客服务公司综合推荐指南:十大专业平台解析
  • 第5篇:Alpha阶段Day5冲刺日志
  • 第 4 篇:Alpha 阶段 Day4 冲刺日志
  • 2025年11月留学生回国求职推荐哪家机构?深度测评5大机构与避坑指南
  • SQL Server 2025 新功能概览
  • 2025食品全自动包装机优质厂家推荐指南
  • Bugku CTF:Crack it[WriteUP] - Vincent
  • 权威实测|4款抗老面霜横向对比:淡纹、提亮、修护,谁才是全能选手?
  • 2025年商标转让平台怎么选?这3个平台让我省下5万冤枉钱!
  • 2025杭州出国留学机构哪家好
  • 2025杭州比较好的留学机构排名
  • 2025杭州比较好的留学机构
  • CICD工具,Jenkins or Tekton or Arbess一文全面对比评测 - 实践
  • 2025出国留学中介机构前十名杭州
  • 商标转让购买平台有哪些?推荐5个靠谱平台,性价比直接拉满!
  • shell 常用的通配符和通配符展开机制
  • 2025年高锌层镀铝锌生产厂家权威推荐榜单:梅钢镀铝锌卷板‌/攀钢镀铝锌卷板‌/攀钢镀铝锌‌源头厂家精选
  • ZYNQ ultrascale RF dataconverter的时钟
  • # JDK 17 文件操作与 Path 类速查手册 - r1
  • 使用Boost实现一个线程安全的map
  • 2025年湖南景区卖票软件公司权威推荐榜单:景点票务软件‌/智慧旅游软件‌/景区软件‌源头公司精选
  • AI数据标注平台获资,详解其技术架构与功能
  • 2025深圳英国留学中介机构
  • 2025去英国哪个留学中介好
  • 2025 年 12 月卷包机厂家推荐排行榜:全自动床垫/棉被/枕头压缩卷包机,高效便捷的家居包装解决方案!
  • linux查看cpu核心数的命令,方便人类查看
  • 2025年自行走升降机价格源头厂家权威推荐榜单:自行走四桅柱升降机‌/自行走升降机室内‌/自行走升降机‌源头厂家精选