CTF 图片隐写之修改图片高宽

                                             CTF WriteUp

                                                                       ——图片隐写之修改图片宽高

       我们平时在做ctf中的misc部分时,常常会遇到图片隐写中的修改图片宽高使图片照片中隐藏的flag显示出来这类问题,对于刚刚入坑的小伙伴们来说是不是比较头大呢,不清楚图片的十六进制数据到底代表了什么,所以就出现了我的天呐!在哪里改啊?要改哪里啊??改成什么啊???心中又奔腾起千万匹草泥马,不要担心,今天和大家分享的是在不清楚图片 十六进制格式的情况下,修改16进制数据,达到修改图片宽高的目的。

在这里借用BugKu平台的一道ctf隐写题来给大家演示。好了,演示开始。

首先,我刚拿到图的时候是这样

        按照之前做题的经验呢,很显然,这个图片长度有问题,flag在下面没有被显示出来。现在我们右击这个图片, 查看它的详细信息,宽度:500像素;高度:420像素。注意看操作——这个时候,我们知道图片是因为高度不够而没有完全显示出flag,所以我们只需要修改他的高度,它的高度是420像素,我们需要找一个进制转换工具,这个网上有好多在线的,将十进制的420转换成16进制的数据,420的十六进制是01a4,把图片拖到Winhex中,查找16进制之中的01,这个01就是我们需要改的图片的高度,我们要改成多少呢,看到他的宽度像素为500,我们把它的高度改成和宽度一样就好了,同样的方法,将500转换为16进制数据,500的16进制是01f4,我们只需要把代表420像素的01改成代表500像素的01f4然后点击保存就好了,再打开这个图片flag就出现了

是不是很简单呢。

    这个解题过程是用作和ctf刚入坑的小白进行学习交流的,也欢迎大牛指正,本人技术有限,最后和各位共勉一句话:自律使我自由。

  • 22
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
图片隐写是指将一张图片隐藏在另外一张图片里面,而 PNG 文件是一种常见的图片格式,因此可以将一张图片隐藏在 PNG 文件中。以下是一个简单的例子: 1. 首先,将要隐藏的图片命名为 image.jpg,将要隐藏图片的 PNG 文件命名为 cover.png。 2. 将 image.jpg 转换为二进制文件,并将其插入 cover.png 中。 ```bash $ xxd -p -c 99999 image.jpg > image.hex $ cat image.hex | tr -d '\n' | xxd -r -p | dd of=cover.png bs=1 seek=100000 conv=notrunc ``` 这里的 `xxd -p -c 99999 image.jpg` 将 `image.jpg` 转换为十六进制,然后 `cat image.hex | tr -d '\n' | xxd -r -p` 将十六进制转回二进制,最后使用 `dd` 命令将二进制插入到 `cover.png` 的第 100000 个字节处。注意,这个位置可以根据具体情况进行调整。 3. 查看生成的 PNG 文件,可以看到图片已经被成功隐藏。 ```bash $ file cover.png cover.png: PNG image data, 800 x 600, 8-bit/color RGB, non-interlaced $ eog cover.png ``` 可以使用 `file` 命令检查文件类型,并使用图片查看器查看图片内容。 4. 提取隐藏的图片。 ```bash $ dd if=cover.png of=image2.jpg bs=1 skip=100000 ``` 这里的 `dd` 命令将 `cover.png` 中的隐藏图片提取到 `image2.jpg` 中。同样地,提取位置可以根据具体情况进行调整。 以上是一个简单的示例,实际情况可能更加复杂。在实际的 CTF 中,可能需要使用更加高级的隐写技巧来隐藏图片,例如使用 Least Significant Bit (LSB) 算法或者 F5 算法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值