【MISC入门题型(二)--CRC校验&LSB隐写】

这篇具有很好参考价值的文章主要介绍了【MISC入门题型(二)--CRC校验&LSB隐写】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

提示:本文章为内蒙古工业大学“深信服杯”网络安全竞赛(又名第五届内蒙古工业大学网络安全竞赛)MISC(杂项)培训总结及其题库,适合刚刚入门CTF杂项方向的小伙伴使用。原题及环境请转到本人主页的上传资源下载查看!相关工具包后续也会整理上传,敬请期待!


前言

注:misc其实是英文miscellaneous的前四个字母,杂项、混合体、大杂烩的意思。

MISC(移动信息服务中心Mobile Information Service Center),是卓望集团为了梦网计划的顺利实施为移动运营商潜心研发的首个技术支撑平台。她实现了开放价值链“服务提供商—〉网络运营商—〉用户”商业模式的有效支撑与业务管理,涉及SP管理、服务管理、用户管理、订购管理、计费管理、统计分析等运营的诸多领域。是运营商在新的网络环境下为客户提供数据业务服务的核心管理平台。


提示:以下是本篇文章正文内容

一、CRC校验

循环冗余校验(Cyclic Redundancy Check, CRC)是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术,主要用来检测或校验数据传输或者保存后可能出现的错误。它是利用除法及余数的原理来作错误侦测的。

校验的应用

校验位是为了保证数据在传输过程中的完整性,采用一种指定的算法对原始数据进行计算,得出的一个校验值。接收方接收到数据时,采用同样的校验算法对原始数据进行计算,如果计算结果和接收到的校验值一致,说明数据校验正确,这一帧数据可以使用,如果不一致,说明传输过程中出现了差错,这一帧数据丢弃,请求重发。

常用的校验算法有奇偶校验、校验和、CRC,还有LRC、BCC等不常用的校验算法。

10、CRC-1

打开图片如下:
【MISC入门题型(二)--CRC校验&LSB隐写】
但通过honyview打开后如下
【MISC入门题型(二)--CRC校验&LSB隐写】
考虑到被篡改,通过010 editor查看

【MISC入门题型(二)--CRC校验&LSB隐写】

  • 前四个字节0000000D(即为十进制的13)代表数据块的长度为13,数据块包含了png图片的宽高等信息,该段格式是固定的
  • 之后的四个字节49484452(即为ASCII码的IHDR)是文件头数据块的标示,该段格式也是固定的
  • 之后进入13位数据块,前8个字节0384 0096中:
    前四个字节00000384(即为十进制的900),代表该图片的宽,该段数据是由图片的实际宽决定的
    后四个字节00000096(即为十进制的150),代表该图片的高,该段数据是由图片的实际高度决定的
    这8个字节都属于13位数据块的内容,因此数据块应再向后数5个字节,即为00 00 03 84 00 00 96
  • 剩余的4位09DAD161该png的CRC检验码,该段数据是由IDCH以及十三位数据块(即上文中的494844 520000 038400000960802000)计算得到的

通过上述,结合python代码写脚本文件如下

import binascii
import struct

crc32_hex = 0x76EC1E40
filename = 'misc25.png'
crcbp = open(filename, "rb").read()

for i in range(2000):
    for j in range(2000):
        data = crcbp[12:16] + \
            struct.pack('>i', i) + struct.pack('>i', j) + crcbp[24:29]
        crc32 = binascii.crc32(data) & 0xffffffff
        if(crc32 == crc32_hex):
            print(i, j)
            print('wid:', hex(i))
            print('hight:', hex(j))

运行结果如下:得到实际的规格(宽&高)为:900*250
【MISC入门题型(二)--CRC校验&LSB隐写】
通过010 修复后得到flag
【MISC入门题型(二)--CRC校验&LSB隐写】

11、CRC-2

拿到题目审查,同理,得到如下被篡改的图片,尝试进行crc校验修复
【MISC入门题型(二)--CRC校验&LSB隐写】
发送到010 editor进行长宽校验码的查找如下:
【MISC入门题型(二)--CRC校验&LSB隐写】
写个python脚本进行还原


import binascii
import struct

crc32_hex = 0xEC9CCBC6
filename = 'misc26.png'
crcbp = open(filename, "rb").read()

for i in range(2000):
    for j in range(2000):
        data = crcbp[12:16] + \
            struct.pack('>i', i) + struct.pack('>i', j) + crcbp[24:29]
        crc32 = binascii.crc32(data) & 0xffffffff
        if(crc32 == crc32_hex):
            print(i, j)
            print('wid:', hex(i))
            print('hight:', hex(j))


得到长宽信息为900*606:
【MISC入门题型(二)--CRC校验&LSB隐写】
最后修复图片长宽即可【MISC入门题型(二)--CRC校验&LSB隐写】
得到flag信息是一段字符串中间穿插他真实高度(606)的==hex(十六进制)==形式

12、CRC-3

这道题是盲修,因为给我们的是个gif文件

GIF是一种位图。位图的大致原理是:图片由许多的像素组成,每一个像素都被指定了一种颜色,这些像素综合起来就构成了图片。GIF采用的是Lempel-Zev-Welch(LZW)压缩算法,最高支持256种颜色。由于这种特性,GIF比较适用于色彩较少的图片,比如卡通造型、公司标志等等。如果碰到需要用真彩色的场合,那么GIF的表现力就有限了。GIF通常会自带一个调色板,里面存放需要用到的各种颜色。在Web运用中,图像的文件量的大小将会明显地影响到下载的速度,因此我们可以根据GIF带调色板的特性来优化调色板,减少图像使用的颜色数(有些图像用不到的颜色可以舍去),而不影响到图片的质量。

【MISC入门题型(二)--CRC校验&LSB隐写】
因此进行盲修,将其所有帧率下的图片宽高(主要是高)调的大些:
得到flag:
【MISC入门题型(二)--CRC校验&LSB隐写】

13、CRC-4

又是个gif 的盲修,不一样的是上一张gif只有两帧,这个有emmm……很多帧哈哈
【MISC入门题型(二)--CRC校验&LSB隐写】
那就同理放到010 逐帧进行宽和高的修改呗(苦力活)
您好,我是GEEK社团的苦力娃,罢工一张图哈哈

14、 CRC-5

png不简单吗?

二、LSB隐写

LSB隐写术,即最低有效位(LeastSignificantBit)隐写术。是一种比较简单的基于二进制的隐写方式,能将一个完整的文件隐藏进另一张图片中。

图像一般都是以RGB三原色的方式存储的,存储后R(红)、G(绿)、B(蓝)最低有效位十六进制ASCII码三组数据按顺序规律排列,每个的取值范围为0~255,范围对应的二进制值就是00000000-11111111,LSB就是把一个文件的二进制每一位拆分修改到图片的色彩数据的二进制值最低位。
图片的图像像数一般都是由RGB三原色(红绿蓝)组成,每一种颜色占8位,取值为0x00~0xFF,就是256种,一共包含了256的3次方种颜色,即16777216种颜色
但是人类的眼睛只可以分辨大概1000万种不同的颜色,还有很多种细微的变化人类的眼睛是觉察不到的。

15、LSB-1

打开原图(png文件)不难联想到LSB(因为是多个RGB的混合叠加,因此有可能在叠加过程中进行隐写)
【MISC入门题型(二)--CRC校验&LSB隐写】
通过stegsolve进行分析
【MISC入门题型(二)--CRC校验&LSB隐写】
【MISC入门题型(二)--CRC校验&LSB隐写】【MISC入门题型(二)--CRC校验&LSB隐写】

16、LSB-2

打开原图:
【MISC入门题型(二)--CRC校验&LSB隐写】
同理,打入stegsolve发现马脚
【MISC入门题型(二)--CRC校验&LSB隐写】
发现red\green\blue 0都有问题
打开相应的部分获取详细信息:
得到flag
【MISC入门题型(二)--CRC校验&LSB隐写】

17、LSB-3

打开文件,讲真,这个图真的有点看腻了-
【MISC入门题型(二)--CRC校验&LSB隐写】
stegsolve分析发现猫腻(真的很考验眼力
【MISC入门题型(二)--CRC校验&LSB隐写】
【MISC入门题型(二)--CRC校验&LSB隐写】
【MISC入门题型(二)--CRC校验&LSB隐写】

这里需要注意的点是:他是竖着的,因此详细信息那里我们需要转换成column模式即可得到flag
【MISC入门题型(二)--CRC校验&LSB隐写】

18、LSB-4

打开图片

通过stegsolve分析
【MISC入门题型(二)--CRC校验&LSB隐写】
【MISC入门题型(二)--CRC校验&LSB隐写】
【MISC入门题型(二)--CRC校验&LSB隐写】
【MISC入门题型(二)--CRC校验&LSB隐写】
【MISC入门题型(二)--CRC校验&LSB隐写】
【MISC入门题型(二)--CRC校验&LSB隐写】
最后查看得到flag
【MISC入门题型(二)--CRC校验&LSB隐写】

总结

以上就是今天要讲的内容,本文仅仅简单介绍了misc入门题型及相关工具的的使用,而掌握MISC题目解题的思路和方法应当重点培养。下期见哦~(还没有更完文章来源地址https://www.toymoban.com/news/detail-411866.html

到了这里,关于【MISC入门题型(二)--CRC校验&LSB隐写】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CTF之misc-图片隐写

    隐写术是一门关于信息隐藏的技巧与科学,所谓信息隐藏指的是不让除预期 的接收者之外的任何人知晓信息的传递事件或者信息的内容。隐写术的英文 叫做Steganography,来源于特里特米乌斯的一本讲述密码学与隐写术的著 作Steganographia,该书书名源于希腊语,意为“隐秘书写

    2024年02月11日
    浏览(27)
  • CTF misc 0宽度字节隐写

    题目来源:HNCTF[WEEK2]Matryoshka(NSSCTF平台)  1,题目打开是这样的一个压缩包和pass.txt 压缩包很明显是需要密码的。在压缩包外部给文件一般不考虑伪加密。 2,打开txt文件。 3, 在记事本里面瞎点一下。 可以发现列数是不对的,这时候想到了0宽度字节隐写。 4,打开0宽度字节

    2024年02月08日
    浏览(35)
  • MISC:音频隐写的破解方法.

    Misc即杂项,是信息隐藏又称信息伪装,就是通过减少载体的某种冗余,如空间冗余、数据冗余等,来隐藏敏感信息,达到某种特殊的目的。 信息隐藏打破了传统密码学的思维范畴,从一个全新的视角审视信息安全。与传统的加密相比,信息隐藏的隐蔽性更强,在信息隐藏中

    2024年02月08日
    浏览(36)
  • MISC:文档隐写的破解方法.

    Misc即杂项,是信息隐藏又称信息伪装,就是通过减少载体的某种冗余,如空间冗余、数据冗余等,来隐藏敏感信息,达到某种特殊的目的。 信息隐藏打破了传统密码学的思维范畴,从一个全新的视角审视信息安全。与传统的加密相比,信息隐藏的隐蔽性更强,在信息隐藏中

    2024年02月08日
    浏览(27)
  • MISC:压缩包隐写的破解方法.

    Misc即杂项,是信息隐藏又称信息伪装,就是通过减少载体的某种冗余,如空间冗余、数据冗余等,来隐藏敏感信息,达到某种特殊的目的。 信息隐藏打破了传统密码学的思维范畴,从一个全新的视角审视信息安全。与传统的加密相比,信息隐藏的隐蔽性更强,在信息隐藏中

    2024年02月10日
    浏览(22)
  • 入坑CTF的第一篇CRC32爆破【MISC】

    最近遇到一道CTF的一道题,大意是: 一个被压缩的Zip压缩包,在无法使用加密口令解压的情况下,如何获取其中文本文件的内容。 思路:对于文件大小6B的文件,可以利用CRC32的校验值,爆破文本内容。 我自己做了一个压缩包,没有使用密码加密,测试一下(以4字节的文件

    2024年02月12日
    浏览(33)
  • CTF Misc(2)内存取证基础以及原理,覆盖了大部分题型

    内存取证在ctf比赛中也是常见的题目,内存取证是指在计算机系统的内存中进行取证分析,以获取有关计算机系统当前状态的信息。内存取证通常用于分析计算机系统上运行的进程、网络连接、文件、注册表等信息,并可以用于检测和分析恶意软件、网络攻击和其他安全事件

    2024年02月12日
    浏览(30)
  • C#: CRC8,CRC16,CRC32 校验代码

    说明:CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似

    2024年01月18日
    浏览(32)
  • (python)数据校验-CRC32校验

    目录 前言 数据校验概念 CRC校验算法 CRC计算原理 算法逻辑 流程图 CRC算法种类 代码实现CRC算法 python实现算法① python实现算法② 总结         在二次开发eCan上位机应用时,遇到了采用CRC(全称是循环冗余校验)32算法 校验文件传输完整性 的场景,浅浅地记录一下使用心得.  

    2023年04月16日
    浏览(29)
  • CRC校验码计算,以常用CRC-8为例

    CRC即循环冗余校验码 :是数据通信领域中最常用的一种查错校验码,其 特征是信息字段和校验字段的长度可以任意选定。 CRC校验原理 :在要发送的帧后面附加一个数,生成一个新帧发送给接收端。它要 使所生成的新帧能与发送端和接收端共同选定的某个特定数整除 (注意

    2023年04月14日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包