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

【Misc】CTFSHOW 入门 wp

目录

图片篇(基础操作)

misc1

misc2

misc3

misc4

图片篇(信息附加)

misc5

misc6

misc7

misc8

misc9

misc10

misc11

misc12

misc13

misc14

misc15

misc16

misc17

misc18

misc19

misc20

misc21

misc22

misc23

misc41

图片篇(文件结构)

misc24

misc25

misc26

misc27

misc28

misc29

misc30

misc31

misc32

misc33

misc34

misc35

misc36

misc37

misc38

misc39

misc40

misc42

misc43

misc44

misc45

misc46

图片篇(颜色通道)

misc50

misc53

misc54

misc55

misc56


图片篇(基础操作)

misc1

点开就是flag

OCR识别一下

ctfshow{22f1fb91fc4169f1c9411ce632a0ed8d}

misc2

给了个png头的txt

改后缀为png拿到flag

misc3

给了个.bpg文件

用bpgview来打开

https://bellard.org/bpg/

misc4

给了6个txt

https://cn1nja.github.io/posts/misc%E5%B8%B8%E8%A7%81%E6%96%87%E4%BB%B6%E5%A4%B4/

PNG

jpeg

bmp

gif

tif

webp

改后缀后拼起来拿到flag

图片篇(信息附加)

misc5

直接打开没有flag

010打开,全局搜ctfshow找到flag

misc6

010打开,全局搜ctfshow

misc7

同上

misc8

foremost分离文件

misc9

misc10

misc11

用tweakpng.exe编辑

删除第一个png

在第二个png里拿到flag

misc12

一个一个删IDAT,直到出现flag

misc13

不难看出是把flag隔一个字符放一个

提一下就行

misc14

dd if=misc14.jpg of=result.jpg skip=2103 bs=1

misc15

misc16

misc17

zsteg -E "extradata:0" misc17.png > misc17
binwalk -e misc17

misc18

misc19

EXIF,全称为 Exchangeable Image File Format(可交换图像文件格式),是一种标准。

它的主要作用是为数码相机、扫描器和其他处理数码图像设备所生成的图像文件(如 JPEG、TIFF、RAW)嵌入元数据。

简单来说,EXIF 就是“关于图像信息的数据”,它被直接写入到图像文件内部。

https://exif.tuchong.com/

misc20

misc21

就是要取x和y的16进制

拼接起来拿到flag

ctfshow{e8a221498d5c073b4084eb51b1a1686d}

misc22

缩略图和点开后不一样

exiftool misc22.jpg

exiftool -ThumbnailImage -b misc22.jpg > flag.jpg

misc23

exiftool misc23.psd

转一下时间戳

https://tool.lu/timestamp/

四个都转一下,hex一下,拼在一起拿到flag

misc41

010里面全局搜F001

图片篇(文件结构)

misc24

图高为150=0x96

把96改为FF

misc25

附件是一个png,crc校验出了问题

爆一下宽高

import binascii
import struct# 读取文件
filename = "misc25.png"
crcbp = open(filename, "rb").read()# 提取CRC值(需要根据实际文件调整位置)
# 通常CRC在IHDR块的最后4个字节
crc32frombp = int(crcbp[29:33].hex(), 16)  # 这个位置可能需要调整
print("原始CRC:", hex(crc32frombp))# 获取IHDR块类型和固定数据
chunk_type = b'IHDR'
fixed_data = crcbp[24:29]  # 宽高之后的数据(位深、颜色类型等)print("开始爆破...")
for i in range(1, 4000):for j in range(1, 4000):# 构建数据:IHDR + 宽度 + 高度 + 固定数据data = chunk_type + struct.pack('>i', i) + struct.pack('>i', j) + fixed_datacrc32 = binascii.crc32(data) & 0xffffffffif crc32 == crc32frombp:print(f"爆破成功!宽度: {i}, 高度: {j}")print(f"十六进制: width={hex(i)}, height={hex(j)}")# 可选:修复文件repaired_data = crcbp[:16] + struct.pack('>i', i) + struct.pack('>i', j) + crcbp[24:]with open("fixed.png", "wb") as f:f.write(repaired_data)print("修复后的文件已保存为: fixed.png")exit(0)print("在1-4000范围内未找到正确的宽高")

misc26

一样的脚本

misc27

jpg没有crc校验,直接把高度改成FF

misc28

改高度为FF

misc29

是个GIF动图

把每一帧的高度都修改

9600 -> FF00

最后在动图中拿到flag

misc30

950 -> 03b6

附件给的是一个bmp

原图宽为900 -> 0384

把84改为b6即可

misc31

(487254-54)/(3*150)

misc32

附件给了个png

用上面的脚本爆破下宽高

misc33

同上

misc34

直接爆宽高有问题

根据题目提示爆宽就行,直到生成能显示的图片

import struct
bp = open("misc34.png", "rb").read()
for i in range(900,1200):#根据题目给的图片格式修改后缀image_name='misc34/'+str(i)+'.png'image=open(image_name,"wb")#pngdata=bp[:16] + struct.pack('>i', i)+bp[20:24]+bp[24:]#png#jpg#data=bp[:157]+bp[157:159] + struct.pack('>h', i)+bp[161:]  #jpg#gif# data=bp[:38]+ struct.pack('>h', i)[::-1]+bp[40:42] +bp[42:]#gifimage.write(data)image.close()

misc35

附件是jpg

还是用上面的脚本

爆出来都是一片空白,尝试把高度拉高

高度拉高到600之后,可以看到最下方的黑体字

再去爆宽度,拿到flag

misc36

附件是gif

先改一下高度,看到最下面的黑体字

然后爆宽

misc37

附件是一个gif

用stegsolve去看每一帧

一帧一帧看拿到flag

misc38

honeyview打开png

是个apng动图

逐帧看拿到flag

misc39

附件给了gif

identify -format "%T " misc39.gif > misc39.txt

将36看作0,37看作1

转出来共287个字符

11000111110100110011011100111101000110111111101111111011011010101100100111000011000101100101100110110011001110010111001011010111001101100010011011111000101100101011001001101100111000110010001110010110110011001111000010111001110010111000101100011110000101100000110100011010101110011111101
s = "11000111110100110011011100111101000110111111101111111011011010101100100111000011000101100101100110110011001110010111001011010111001101100010011011111000101100101011001001101100111000110010001110010110110011001111000010111001110010111000101100011110000101100000110100011010101110011111101"
flag = ""
for i in range(41): #287//7flag += chr(int(s[7*i:7*(i+1)], 2))
print(flag)

misc40

附件是个apng动图

用APNG Disassembler提一下

flag=""
for i in range(1,69):if(i<10):f = open('G:/misc/misc40/apngframe0'+str(i)+'.txt')else:f = open('G:/misc/misc40/apngframe'+str(i)+'.txt')s = f.read()flag += chr(int(s.split("/")[0][6:]))
print(flag)

misc42

用TweakPNG打开附件

将IDAT的Length转成chr

s = [229,152,191,229,152,191,49,99,116,102,115,104,111,119,123,48,55,56,99,98,100,48,102,57,99,56,100,51,102,50,49,53,56,101,55,48,53,50,57,102,56,57,49,51,99,54,53,125]
for i in s:print(chr(i),end='')

misc43

用png-debugger看到CRC错误

把crc-code拼起来

misc44

数据太多,直接导出来

PNGDebugger.exe misc44.png > misc44.txt

将ok替换为1,failed替换为0

f=open("misc44.txt","r").read()
flag=""
for i in f.split():if "OK!" == i:flag += "1"elif "FAILED" ==i:flag += "0"
print(flag)
for i in range(len(flag)//8):print(chr(int(flag[8*i:8*(i+1)],2)),end="")

misc45

将png转为bmp

https://convertio.co/zh/png-bmp/

misc46

gif一直在偏移

identify misc46.gif > misc46.txt
arr=[]
with open('misc46.txt','r') as file:for i in file.readlines():content_list=i.split(' ')arr.append(content_list[3][8:].replace('+',' '))
with open('misc46_point.txt','w') as result:for i in arr:result.write(i+'\n')

再用gnuplot画图

图片篇(颜色通道)

misc50

misc53

misc54

misc55

先把图片翻转成正常的

PK头,提取成压缩包

misc56

http://www.dtcms.com/a/446348.html

相关文章:

  • 网站优化分析杭州网站建设公司
  • 每日一个C语言知识:C语言基础语法
  • 国内红酒网站建设wordpress创建登录页
  • 什么软件能把做的网站上传wordpress商品主图
  • Giants Shoulder - Samsung: LPDDR6 Key Architecture Share
  • 如何设计优秀的企业微信私域运营实战培训方案
  • 数据结构入门 (六):公平的艺术 —— 深入理解队列
  • 计算某字符出现次数
  • 智慧物流企业网站建设方案创意广告图片及文字解析
  • 医院网站建设思路太原制作响应式网站
  • ALiBi是否会替代YaRN?
  • java数据结构
  • 建设标准下载网站个人网站名称要求
  • Delphi Architect Crack
  • 网页设计与网站架设少儿编程平台
  • 广州网站开发创意设计网站上放个域名查询
  • MySQL索引特性
  • 网站建设中 英语公司装修费用可以一次性入账吗
  • 塑胶原料东莞网站建设课程建设类教学成果奖网站
  • 重庆房地产网站建设如何增加网站的流量
  • RT-Thread 移植教程 基于GD32F4XX
  • wordpress网站换主机网站设计形式
  • 音视频学习(六十八):视频采集原理
  • 实习小结。
  • 怎么做百度提交入口网站企业注册查询官网
  • 归并排序算法的实现和原理
  • 语言散在风中已无远弗届:从语言的角度聊聊中国的未来
  • php做的网站收录百度排行榜
  • C++基于 brpc 的 Channel 管理封装
  • OpenWrt 的 Overlay 文件系统到底是怎么回事?