题目概述:

题目附件:

图片 不方便打开。

解题思路:

(1)根据题目提示(要是图片长一点该多好......),暗示图片宽高参数被修改,将图片拖进kali虚拟机中进行验证,发现图片为损坏状态,确定为宽高被修改类型。

(2)此处我们可以使用python3进行crc32爆破,通过枚举的方式获得正确的图片宽高 。先把图片拖进winhex中分析,获得图片的crc码,如下:

黑色矩形框住的为该图片的crc码,蓝色的为宽高数据。

(3)爆破代码如下,有借鉴成分。

#使用python3爆破png图片的宽高数据
import os
import binascii
import structfor i in range(20000):#一般 20000就够wide = struct.pack('>i',i)for j in range(20000):high = struct.pack('>i',j)data = b'\x49\x48\x44\x52' + wide+ high+b'\x08\x02\x00\x00\x00'#因为是 Py3,byte和str型不能直接进行运算,要写把 str写 b'...'。不然把 wide和 high写成 str(...)crc32 = binascii.crc32(data) & 0xffffffffif crc32 == 0x889C2F07:  # 0x889C2F07是这个 png文件头的 CRC校验码,在 21~25byte处print('\n\n',i,j,crc32)   #0x 后的数字为十六进制中crc位置的代码(winhex左016,13-下一行的0)print(type(data))exit(0)print(i,end=' ')

可以得知原图的宽高分别为365,645像素(十进制),使用计算器将其转化为十六进制数为:

16D,285。

(4)在010中打开题目附件图片,对宽高数据进行修改:

将高的185改为285,另存图片到桌面,结果更改后的图片如下:

此为修改后的原图隐藏部分,获得flag。

(5)提交答案。

解答完毕。

CTF练题(2) png图片修改宽高典型例题相关推荐

  1. ctf 改变图片高度_通过CRC32爆破修改图片的宽高 ctf-misc图片隐写

    ** 一.在处理图片隐写题的时候,可能会修改图片原有的宽高,导致图片里面的内容无法正常显示,那么怎么判断它的宽高是否被修改了呢? ** 1.把图片拖进010editor中会发现左下角提示CRC不匹配, ...

  2. 通过CRC32爆破修改图片的宽高 ctf-misc图片隐写

    ** 一.在处理图片隐写题的时候,可能会修改图片原有的宽高,导致图片里面的内容无法正常显示,那么怎么判断它的宽高是否被修改了呢? ** 1.把图片拖进010editor中会发现左下角提示CRC不匹配, ...

  3. linux 读取png图片大小,读取 png 图片的宽高信息

    #include // 保留,在读取 png 头部信息的是,每次读取到 0D 0A 读取就会产生错误,如果 0D 0A 修改为其他的数据,则数据可以正常读取,不知道为什么 ----文件打开的时候, 将 ...

  4. RT/Metro商店应用如何如何获取图片的宽高

    RT/Metro商店应用如何如何获取图片的宽高 var file = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms ...

  5. php 获取图片的宽高,JS怎么获取图片当前宽高

    JS获取图片当前的宽高,我们可以使用JavaScript clientWidth和clientHeight属性来实现获取.clientWidth.clientHeight属性表示获取图像的当前宽度和高 ...

  6. php 改变图片的宽高,php缩放图片(根据宽高的等比例缩放)示例

    php缩放图片(根据宽高的等比例缩放)示例 发布于 2014-12-07 08:53:31 | 149 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hyperte ...

  7. 图片 + 未知宽高 + 垂直居中

    图片 + 未知宽高 + 垂直居中 第一种: table-cell / inline-block + vertical-align 条件: 容器宽高受图片默认宽高影响 html结构: <div&g ...

  8. php根据图片地址获取图片原始高宽,Js获取图片原始宽高的实现代码

    如果我们页面看到的图片都是缩略图,那就需要做个图片点击放大效果,那么怎样获取图片的原始宽高呢?方法如下: //获取图片原始宽度 function getNaturalWidthAndHeight(im ...

  9. 原生图片预览实现及由此引出的图片自适应宽高问题探索

    看到手机相册,突发奇想:能不能用实现一个原生的页面"相册"?或者说,传统网页中怎么实现图片预览功能? 如果在原生网页中使用插件,那必不可少的要引入一堆东西(并不是鄙视插件,只是为了 ...

最新文章

  1. 何恺明团队推出Mask^X R-CNN,将实例分割扩展到3000类
  2. 从Asp.net转到Php之调试
  3. [Google Guava] 9-I/O
  4. 15 个必须知道的 Chrome 开发工具技巧
  5. Haskell语言实现判断一个整数是否是质数的代码及运行结果
  6. oc58--Category注意事项
  7. 用Microwindows(Nano-X)编写“hello world”
  8. 深度学习 Deep Learning UFLDL 最新Tutorial 学习笔记 4:Debugging: Gradient Checking
  9. Docker基本命令入门
  10. 基于JAVA+Servlet+JSP+MYSQL的银行账户管理系统
  11. 微博上一些有用的话(四)
  12. java程序员中英文简历_Java程序员英文简历范文
  13. 创新工场 蔡学镛SINA微博中向我们提及的书籍、文章统计 (二)
  14. “客户机操作系统已将 CD-ROM 门锁定,并且可能正在使用 CD-ROM,这可能会导致客户机...” 报错解决办法
  15. 分治——最近点对问题
  16. 年薪60w的程序员与年薪6w的极品程序员,差距怎么这么大呢?
  17. [转] 海尔集团CEO张瑞敏演讲《人不成熟的几大特征》
  18. 大学c语言机试是老师阅卷么,最近,我们找了一些老师聊了聊
  19. suspense源码分析
  20. Java利用递归算法实现24点游戏

热门文章

  1. 线性代数 --- Matrix A的零空间(Null space)与列空间(Column space)
  2. AMD64 和 i386
  3. KDZD高压绝缘耐压试验设备
  4. 随机游走模型(RandomWalk Mobility)
  5. 寻找旋转数组的最小值
  6. php 水平越权,水平越权与垂直越权
  7. linux查看所有用户家目录,linux – 允许用户读取其他用户的主目录
  8. 贪吃的大嘴-动态规划
  9. 大话设计模式——中介者模式
  10. Python变量引用浅析