MISC入门总结

article/2025/11/6 2:57:54

《re入门到Misc精通》,哄堂大笑了,家人们。

总结在后面

ctf.showhttps://ctf.show/challenges#misc2-1134

ctfshow misc入门题(还没写完,持续更新)

图片篇第一题 签到题 打开直接给flag qq提取文字交了

第二题 给个txt文件 winhex打开txt文件后 发现

png头 所以 换成png后缀 打开后给flag 文字识别 提交

第三题 bpg格式 cmd进入查看bgp文件中 命令为:bpgview.exe E:\ctfshow\misc3.bpg

第四题 给了四个txt winhex进入发现后缀不对 改了后每个图 对应一部分 都改成png 就可以看到了

第五题 打开图片 发现假flag winhex找到后面连接的flag 

第六题 打开winhex 搜文字 ctfshow即可得到

第七题:同上

第八题:flag在图片文件中图片文件中。 kali用foremost命令分离出来 藏了一个png 开始标志 89 50 结束标志 60 82

第九题:同第七题

第十题:

第十一题:flag在另一张图里

PNG中IDAT

图像数据块IDAT(image data chunk):它存储实际的数据,在数据流中可包含多个连续顺序的图像数据块。binwalk看到的zlib就是其压缩格式 binwalk -e可以实现自动解压

 用010把第一个idat删除了 然后另存为图 即可求出 

第十二题:同上 发现idat过多 删除前8个idat就好

第十三题:提示在后面 发现

查看发现 中间隔两个字符

s="631A74B96685738668AA6F4B77B07B216114655336A5655433346578612534DD38EF66AB35103195381F628237BA6545347C3254647E373A64E465F136FA66F5341E3107321D665438F1333239E9616C7D"
flag=""
for i in range(0,len(s),4):#相当于四个数字个循环,只要前两个
    flag += s[i]
    flag += s[i+1]
print(flag)
 得到十六进制 转换 16进制转换,16进制转换文本字符串,在线16进制转换 | 在线工具 (sojson.com)

第十四题:flag在图片文件中图片文件中。 kali用foremost命令分离出来 藏了一个png 开始标志 89 50 结束标志 60 82

第十五题:winhex打开就发现了flag 

第十六题:winhex打开时发现有大量IDAT块 提示flag在图片数据里

有zlib文件 见第十题 binwalk -e分离 得到flag

第十七题:zsteg,这是一个用于检测PNG和BMP中的隐藏数据隐藏数据的工具,可以快速提取隐藏信息 (86条消息) Kali linux下图片隐写,图片隐写信息快速检测工具——zsteg_老魏一凡的博客-CSDN博客https://blog.csdn.net/weixin_35696092/article/details/116953571?ops_request_misc=&request_id=&biz_id=102&utm_term=kali%E5%A6%82%E4%BD%95%E8%A3%85zsteg%E5%B7%A5%E5%85%B7&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-116953571.142%5Ev9%5Econtrol,157%5Ev4%5Econtrol&spm=1018.2226.3001.4187

 zsteg -E /root/桌面/misc17.png 'extradata:0' > 1.txt

binwalk -e /root/桌面/1.txt 得到

第十八题:提示flag在标题、作者、照相机和镜头型号里 鼠标右键 属性 

第十九题: flag在主机上的文档名里 属性里没 EXIF信息查看器 (tuchong.com)

第二十题:flag在评论里 同上

 谐音梗扣钱 ctfshow{c97964b1aecf06e1d79c21ddad593e42}

第二十一题:flag在序列号上 同上 找到序列号一串数字

发现是数字 转下字符串 发现是十六进制 转换下 

 python中hex是把十进制转十六进制 把x的分辨率与Y的分辨率再相加

十进制转十六进制| 10进制转16进制 | 在线进制转换 (sojson.com)

四个值转换后相加 即可得到flag

ctfshow{e8a221498d5c073b4084eb51b1a1686d}

第二十二题:

提示 flag在图片里 winhex打开后搜索ctfshow 没有发现 

学习到了一个新的jpeg压缩 我好菜啊 MagicEXIF 元数据编辑器_官方电脑版 _华军纯净下载 (onlinedown.net)

下载后打开就出来了

ctfshow{dbf7d3f84b0125e833dfd3c80820a129} 

第二十三题:flag在时间里

给了一个psd文件 

EXIF信息查看器无需安装软件,只需上传照片即可查看完整EXIF信息,包括机身、镜头型号、拍摄时间、相机快门次数,支持JPEG、TIFF、CR2、NEF、XMP等多种图片格式。无需下载,比Exif Show, ExifPro更好用的EXIF查看器!https://exif.tuchong.com/查看时间

看他人做法 又学到了新的工具 exiftools  

ExifTool完全入门指南 (rmnof.com)https://www.rmnof.com/article/exiftool-introduction/

可以看到action 和history 

要求是先转成unix时间戳 然后DEC十进制转HEX十六进制就得到flag 

时间戳(Unix timestamp)转换工具 - 在线工具 (tool.lu)https://tool.lu/timestamp/

十进制转十六进制| 10进制转16进制 | 在线进制转换 (sojson.com)https://www.sojson.com/hexconvert/10to16.html

合并就好 ctfshow{3425649ea0e31938808c0de51b70ce6a}

 misc41:

太坑了 竟然是

 

 H4ppy Apr1l F001's D4y! F001

 得到的是ctfshow{fcbd427caf4a52f1147ab44346cd1cdd}

misc24

flag在图片上面。 

(90条消息) 位图(bmp)文件格式分析_aidem_brown的博客-CSDN博客_bmp位图https://blog.csdn.net/aidem_brown/article/details/80500637

 转换后得到宽为900

 最后得出目前文件是900*150=135000个像素大小 同时文件头占53字节

文件尾的位置在675053字节处(后面两个字节是windows的”补0”),又因为每个像素点由3个字节(十六进制码6位)表示,每个字节负责控制一种颜色,分别为蓝(Blue)、绿(Green)、红(Red),所以文件真实的像素大小为:(675053-53)/3=225000

提示高 所以正确的高度是225000/900=250

即改为FA 00 00 00

misc25

png格式与bmp不同,他的宽高部分不一样 且不需要大端优先 也没那么复杂 直接改

详解PNG文件结构 - Angel_Kitty - 博客园 (cnblogs.com)https://www.cnblogs.com/ECJTUACM-873284962/p/8986391.htmlflag在图片下面。 改高度 00 00 00 96改成00 00 00 F2就行

misc26

flag在下面 但多下面 需要CRC爆破 

对一张正常的图片,通过修改其宽度或者高度隐藏信息,使计算出的CRC校验码与原图的CRC校验码不一致;windows的图片查看器会忽略错误的CRC校验码,因此会显示图片,但此时的图片已经是修改过的,所以会有显示不全或扭曲等情况,借此可以隐藏信息。

而Linux下的图片查看器不会忽略错误的CRC校验码,因此用Linux打开修改过宽或高的png图片时,会出现打不开的情况

爆破图片修改前的宽和高来匹配CRC校验码,并用正确的宽和高来修复图片

import zlib
import structfilename = 'misc26.png'
with open(filename, 'rb') as f:all_b = f.read()crc32key = int(all_b[29:33].hex(),16)data = bytearray(all_b[12:29])n = 4095            #理论上0xffffffff,但考虑到屏幕实际/cpu,0x0fff就差不多了for w in range(n):          #高和宽一起爆破width = bytearray(struct.pack('>i', w))     #q为8字节,i为4字节,h为2字节for h in range(n):height = bytearray(struct.pack('>i', h))for x in range(4):data[x+4] = width[x]data[x+8] = height[x]crc32result = zlib.crc32(data)if crc32result == crc32key:print("宽为:",end="")print(width)print("高为:",end="")print(height)exit(0)

然后winhex修改 得到

ctfshow{94aef125e087a7ccf2e28e742efd704c}

 misc27 flag在图片下面

给了个jpg 所以没法爆破 直接改高 他的和png还不一样 需要查找

右键点击图片 选择属性 打开

 他的高度为150像素 改成16进制为96 宽改后为03 84  winhex搜96 0384

把96前的00块改为01得到  ctfshow{5cc4f19eb01705b99bf41492430a1a14}

总结:

  • 1.查看图像属性详细信息是否有隐藏内容 或者看exif信息 EXIF信息查看器 (tuchong.com)
  • 或者用exiftools
  • 2.利用winhex或nodepad++打开搜索ctf,CTF,flag,key等关键字是否存在相关信息
  • 搜下有没有txt 有的话 直接扔kali里分解
  • 3.检查图像的开头标志和结束标志是否正确,若不正确修改图像标志恢复图像,打开查看是否有flag或ctf信息,(往往gif属于动图,需要分帧查看各帧图像组合所得数据 若不是直接的ctf或flag信息 需要考虑将其解码)看标志位是否损坏 没有的话加 winhex里:右键-》编辑-》粘贴0字节-》插入所需要的位数-》修改那些插入的0字节
  • jpg图像开始标志:FF D8 结束标志 :FF D9
  • gif图像开始标志:47 49 46 38 39 61 (GIF89)结束标志:01 01 00 3B
  • bmp图片开始标志:42 4D //92 5B 54 00 00 00 00 00 结束标志:00
  • png图片开始标志:89 50 结束标志:60 82
  • 4.将图片放置在kail系统中,执行binwalk xxx.jpg 查看图片中是否是多个图像组合或者包含其他文件(若存在多幅图像组合用binwalk来找 语法:binwalk -e 文件路径,再执行foremost xxx.jpg会自动分离;若检测出其他文件修改其后缀名即可,如zip)

        binwalk -e filename

  • 5.使用StegSolve对图像进行分通道扫描,查看是否为LSB隐写
  • 6.在kail下切换到F5-steganography,在java Extract运行
  • 命令:java Extract 123456.jpg图片的绝对地址 -p 123456
  • 判断是否为F5算法隐写
  • 7.在kali系统中使用outguess-master工具(需要安装),检测是否为guess算法隐写
  • 8.用winhex改变像素
  • 其他人的思路:
  • 2.docx文件类型:
    (1)文档中含有隐藏文字,选项中设置。
    (2)在kali下改为压缩包,看一下含有的隐藏信息。
    3.jpg图片文件:
    (1)查看属性,notepad++打开,16进制打开看格式,看看有没有关键字。
    (2)备份一份,改为zip,看看是否包含其余的文件。
    (3)jpg文件kali查看文件,kali下的命令:binwalk 文件名 分离文件:foremost -e 文件名

    outguess隐写:outguess -r angrybird.jpg angrybird.txt。
    steghide:查看隐藏在文件中的信息:steghide info 文件名,分离文件:steghide extract -sf 文件名。
    (4)使用stegsolve,查看不同通道,不同偏移量是否含有其余信息。
    (5)jpg图片可以使用stegdetect -tjopi -s 10.0 文件名查看是什么隐藏方式。
    (6)jpg文件,jphide可以使用steghide解密(jphs),命令:steghide extract -sf 文件名(要密码)
    (7)jpg文件下的F5隐写,进入F5-steganography-james文件夹,在空白处 ctrl+shift+鼠标右键->在此处打开命令窗口,在cmd中输入命令:java Extract 文件名 -p 密码;kali下也可以使用java Extract /root/文件名 -p 密码提取F5隐写文件,在F5文件夹中可以找到output.txt
    (8)jpg文件可能会用到brainftools分离,命令:bftools.exe decode braincopter 文件名 --output out.jpg之后运行:bftools.exe run out.jpg
    4.png文件:
    (1)查看属性,notepad++打开,16进制打开看格式,看看有没有关键字。
    (2)kali查看文件:binwalk 文件名
        分离文件:foremost -e 文件名

    (3)使用stegsolve,查看不同通道,不同偏移量是否含有其余信息。
    (4)brainftools分离,命令:bftools.exe decode braincopter 文件名 --output out.txt,如果有BrainFuck代码可以运行:bftools.exe decode braincopter 文件名 --output out.jpg,之后运行bftools.exe run out.jpg
    (5)steganography软件可以提取文件,选择decrypt为密码提取。(web版steganography:http://www.atool.org/steganography.php)
    (6)tweakpng判断是不是png格式,可能校验位有问题。
    (7)在十六进制编辑器中修改高度(二行六列)查看隐藏信息。
    5.bmp文件:
    (1)查看属性,notepad++打开,16进制打开看格式,看看有没有关键字。
    (2)kali查看文件:binwalk 文件名
        分离文件:foremost -e 文件名

    (3)使用stegsolve,查看不同通道,不同偏移量是否含有其余信息。
    (4)bmp文件隐写可能是LSB,利用Wbstego解决,生成一个is文件,文本编辑器打开看看。
    (5)把图片放到画图里,改成png格式保存,再利用png的隐写查看隐藏信息。
    6.gif文件:
    (1)notepad++查看文件头GIF8,十六进制打开:修改头文件
    (2)使用stegsolve,逐帧查看。
    7.zip文件:
    (1)密码爆破
    8.音频文件:
    (1)查看属性,notepad++打开,16进制打开看格式,看看有没有关键字。
    (2)MP3stego命令:Decode.exe -X -P 密码 文件名

    (3)利用Audacity分析音频文件。
    (4)kali查看文件:binwalk 文件名
        分离文件:foremost -e 文件名

    9.stegsolve

    (1)下面右选项表示不同的色素的通道

    (2)数据提取,analysis,date extract,按照选项选完(RGB)

    (3)图片合成,先打开一张,用中间的analysis,combine,二维码一般四角为黑色,可以进行反色操作(点下面的左右)
    10.其余文件:
    (1)查看属性,notepad++打开,16进制打开看格式,搜索关键字(flag,ctf,key)。
    (2)两张以上的文件可能会使用stegsolve进行合成。
    (3)修改zip,查看隐藏文件。
    (4)复杂图片可以分离图层。

WinHex: Hex Editor & Disk Editor, Computer Forensics & Data Recovery Softwarehttp://www.winhex.com/winhex/BPG Image format (bellard.org)https://bellard.org/bpg/


http://chatgpt.dhexx.cn/article/Onno6kpH.shtml

相关文章

【安全攻防知识-4】CTF之MISC

1、MISC介绍 MISC,中文即杂项,包括隐写,数据还原,脑洞、社会工程、压缩包解密、流量分析取证、与信息安全相关的大数据等。 竞赛过程中解MISC时会涉及到各种脑洞,各种花式技巧,主要考察选手的快速理解、学…

Failed building wheel for pycocotools

最近在部署tensorflow2的时候,总是遇到下面错误:(ERROR:Failed building wheel for pycocotools),具体信息如下: 一般这种问题,会出现在windows安装上,可以使用下面命令进行安装&…

Failed building wheel for tokenizers

安装transfomers成功了,但是tokenizers怎么也装不上 如图,安装了rust也同样报错 那策略就是自己分开安装tokenizer 可以直接pip,也可以去官网自己下载,注意与tranformers版本的对应 pip install tokenizers0.10.1

Python 小知识,wheel 文件的说明与使用

文章目录 ⛳️ 需求实战背景⛳️ 安装实战 ⛳️ 需求实战背景 .whl 文件是以 wheel 格式保存的安装包,而且 wheel 是 Python 发行版标准内置包,其包含 Python 所有安装文件,wheel 文件使用 zip 格式压缩,本质也是压缩文件。 按照…

android wheel控件滚动,android 滚动选择插件 android-wheel

效果图: 源码: package kankan.wheel.demo; import java.util.Calendar; import kankan.wheel.R; import kankan.wheel.widget.OnWheelChangedListener; import kankan.wheel.widget.OnWheelClickedListener; import kankan.wheel.widget.OnWheelScrollL…

详解Unity中的车轮碰撞器Wheel Collider

前言 碰撞体组件定义了物体的物理性状,Unity中有一系列基本碰撞体,我们可以使用它们组合成任意形状,但除了基本碰撞体之外,Untiy还提供了诸如车轮(Wheel)、网格(Mesh)、地形(Terrain)等碰撞器,就比如Wheel Collider&a…

html 显示音标,wheel的音标

这两个单词读音一样吗 第一个:will 第二个:wheelwill [wil,wel] wheel [hwi:l] wheel发音的时候嘴唇更加紧张。 wheel tower的音标 英文原文: wheel tower 英式音标: [wiːl] [ˈtaʊə] 美式音标: [wil] [ˈtaʊɚ] w…

wheelCollider

mass 质量 质量越大摩擦力会越大 Suspension Distance 车轮悬架距离 wheelcollider.morotTorque 驱动力 brakeTorque 这个是刹车的动力 steerAngle 这个是控制车子的转向 wheelcollider.rpm 这个可以获取车轮的转速 float speed (wc.rpm ) * (wc.radius * 2 * Mathf.PI) * 60…

wheel安装+使用wheel安装第三方库+临时换源安装和永久换源安装

上一篇文章:Python要点及其环境搭建Pycharm简单使用教程 wheel安装使用wheel安装第三方库临时换源安装和永久换源安装 wheel安装使用wheel安装第三方库临时换源安装永久换源安装python的三种不同编辑器输出hello world下一篇文章 wheel安装 命令行下pip install w…

卡方检验还是费歇尔精确检验?

1,卡方检验(chi-square test)和费歇尔精确检验(fisher’s exact test)都可以对2X2的表格进行检验,如何进行选择? 假设有如下的2X2表格(CVD为心血管病): a, …

假设检验之卡方检验

之前我对卡方检验的了解都是一知半解的,即知道作用是对离散变量分布差异的比较,根据期望频数和观察频数的差异计算出来一个卡方值,之后根据自由度和显著性水平查卡方分布对应的临界值,比较大小得出有无明显差异的结论。 一般我们都…

计量经济学及Stata应用 陈强 第七章异方差习题7.2

7.2 房价回归是否存在异方差?数据集hprice2a.dta包含美国波士顿506个社区的房屋中位数价格的横截面数据,考虑以下特征价格回归: 其中,lprice为房价的对数,lnox为空气污染程度的对数,ldist为社区到就业中心距离的对数&a…

R 两组样本t检验 wilcoxon检验、卡方、fisher精确检验

一般统计方法R实现 文章目录 一、读入数据二、连续性变量1.正态性和方差齐性检验2.描述统计量3.独立样本t检验和wilcoxon秩和检验 三、四格表卡方或fisher精确检验(OR【95%CI】)1.计算各组频数和相对频率2.整理数据进行检验 总结 一、读入数据 library(…

计量经济学及Stata应用 陈强 第九章模型设定与数据问题习题9.5

9.5美国的汽油需求函数是否稳定?使用数据集gasoline.dta,估计美国1953-2004年的汽油需求函数: 其中,被解释变量lgasq为人均汽油消费量的对数,解释变量lincome为人均收入对数,lgasp为汽油价格指数的对数,lpn…

统计学 假设检验(Hypothesis Testing)

什么是假设检验: 通过设定一个假设, 然后通过收集数据、计算等操作来判断这个假设是否成立。 假设检验的步骤: 1. 设定 null hypothesis 和 alternative hypothesis 2. 收集数据 3. 基于收集的数据,来判断 拒绝 或者 接受 nul…

卡方检验 (Chi-square test / Chi-square goodness-of-fit test)

卡方检验 (Chi-square test / Chi-square goodness-of-fit test) 1. 什么是卡方检验 卡方检验是一种以 χ 2 \chi^2 χ2分布为基础的用途广泛的假设检验方法。是一种非参数检验方法。它的无效假设 H 0 H_0 H0​为:观察频数与期望频数没有显著性差异。 …

【零基础Eviews实例】01异方差的检验与修正

使用说明 本文档主要介绍有关线性回归模型关于异方差常见的判断方法(包括图像法、辅助回归、怀特检验三种)以及修正方式(加权最小二乘法)。使用软件为Eviews,和上一篇文章相同,此处也仅仅关注操作性的东西…

计量经济学笔记5-Eviews操作-异方差的检验与消除(White检验与加权最小二乘)

完成期末作业的同时来更一下博客 问题背景: 对中国储蓄存款总额(Y,亿元)与GDP(亿元)两个变量进行一元线性回归,检验并消除异方差。 White检验是通过一个辅助回归式进行异方差检验。用残差平方对…

stata学习笔记|异方差问题

异方差无法用OLS进行估计的根源问题:方差较大的数据包含的信息量较小,但OLS是对所有数据进行相同的处理。异方差的问题并不会影响估计量的无偏性、一致性、渐近正态性,只是效率较低使得t检验和F检验失效。 说白了就是回归出来的系数不会改变…

计量经济学及Stata应用 陈强 第七章异方差习题7.3

7.3恩格尔曲线是否存在异方差?数据集food.dta包含有关每周食物开支(food_exp)与每周收入(income)的40个观测值。 (1)将food_exp与income的散点图与线性拟合图画在一起。根据此图,是…