上一次剩3题坐半天不会写。还是先把后面写了吧。
只是为了自己记录,希望师傅们多提点建议多教教我。

文章目录

  • 图片篇(文件结构)
    • misc24
    • misc25
    • misc26
    • misc27
    • misc28
    • misc29
    • misc30
    • misc31
    • misc32
    • misc33
    • misc34
    • misc35
    • misc36
    • misc37
    • misc38
    • misc39
    • misc40
    • misc41
    • misc42
    • misc43
    • misc44
    • misc45
    • misc46
    • misc47
    • misc48
    • misc49

图片篇(文件结构)

misc24

提示:flag在图片上面。
010里面修改bmp的高度

ctfshow{dd7d8bc9e5e873eb7da3fa51d92ca4b7}

misc25

提示:flag在图片下面。
打开图片,调整图片高度,得到flag。
在这里插入图片描述


利用脚本进行crc爆破

#coding=utf-8
import zlib
import struct
#读文件
file = 'C://Users/24471/Desktop/misc26.png'  #注意,1.png图片要和脚本在同一个文件夹下哦~
fr = open(file,'rb').read()
data = bytearray(fr[12:29])
crc32key = eval(str(fr[29:33]).replace('\\x','').replace("b'",'0x').replace("'",''))
#crc32key = 0xCBD6DF8A #补上0x,copy hex value
#data = bytearray(b'\x49\x48\x44\x52\x00\x00\x01\xF4\x00\x00\x01\xF1\x08\x06\x00\x00\x00')  #hex下copy grep hex
n = 4095 #理论上0xffffffff,但考虑到屏幕实际,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]#print(data)crc32result = zlib.crc32(data)if crc32result == crc32key:print(width,height)#写文件newpic = bytearray(fr)for x in range(4):newpic[x+16] = width[x]newpicuo[x+20] = height[x]fw = open(file+'.png','wb')#保存副本fw.write(newpic)fw.close

得到一个新的png,然后拖到010里面去查看

高度的hex为25e
得到flag

ctfshow{94aef125e087a7ccf2e28e742efd704c}

misc26

提示:flag在图片下面。
和25一样,也是改高度,但是这次改的比较多
得到flag,不过有提示,不完整。
这里需要,找到图片的真实高度。

ctfshow{94aef0961087a7ccf2e28e742efd704c}

misc27

提示:flag在图片下面
图片是jpg,修改图片高度,把150的十六进制0096改成00FF得到flag

ctfshow{5cc4f19eb01705b99bf41492430a1a14}

misc28

提示:flag在图片下面。
图片是gif,修改gif高度
一共要改两处

ctfshow{59c8bc525426166b1c893fe12a387fd7}

misc29

与上一题一样。对gif全部帧进行替换。
搜索全部的96 00换成FF 00

ctfshow{03ce5be6d60a4b3c7465ab9410801440}

misc30

提示:正确的宽度是950。
把图片放入010,在宽度的位置进行修改成950的二进制03 B6,注意要倒着写。
(我一开始也不知道的,是打开来发现宽度900写的是84 03,所以才想bmp是反着的)

改完得到flag

ctfshow{6db8536da312f6aeb42da2f45b5f213c}

misc31

提示:高度是正确的,但正确的宽度是多少呢。

题目提示了改宽度
从v3师傅的博客抄的爆破bmp宽度的脚本

import struct
import zlib
f = open('./misc31.bmp','rb')
c = f.read()
width = c[18:22]
height = c[22:26]
# 爆破bmp宽度
for i in range(900,1100):f1 = open('./bpout/'+str(i)+'.bmp','wb')# print(struct.pack('>i',i)[::-1])img = c[:18]+struct.pack('>i',i)[::-1]+c[22:]f1.write(img)f1.close()

在1082.bmp找到正确的flag

ctfshow{fb09dcc9005fe3feeefb73646b55efd5}

misc32

提示:高度是正确的,但正确的宽度是多少呢
CRC爆破宽度

import zlib
import struct
image=open("misc32.png","rb").read()
for i in range(4096):for j in range(4096):c=image[12:16]+struct.pack('>i',i)+struct.pack('>i',j)+image[24:29]CRC=0xE14A4C0Bif zlib.crc32(c)==CRC:print(hex(i),hex(j))exit(0)

ctfshow{685082227bcf70d17d1b39a5c1195aa9}

misc33

提示:出题人丧心病狂,把高度也改了
和上题一模一样的脚本,爆破宽高

import zlib
import struct
image=open("misc33.png","rb").read()
for i in range(4096):for j in range(4096):c=image[12:16]+struct.pack('>i',i)+struct.pack('>i',j)+image[24:29]CRC=0x5255A798if zlib.crc32(c)==CRC:print(hex(i),hex(j))exit(0)

ctfshow{03070a10ec3a3282ba1e352f4e07b0a9}

misc34

提示:出题人狗急跳墙,把IHDR块的CRC也改了,但我们知道正确宽度肯定大于900
由于CRC也被修改了,所以我们对宽度进行爆破,然后自己找图片

import zlib
import struct
image=open("misc34.png","rb").read()
width=image[16:20]
height=image[20:24]
for i in range(900,1200):image1=open(str(i-900)+'.png','wb')change=image[:16]+struct.pack('>i',i)+image[20:]image1.write(change)image1.close()

ctfshow{03e102077e3e5de9dd9c04aba16ef014}

misc35

提示:出题人负隅顽抗,但我们知道正确宽度肯定大于900
先改高度为\x02\x96,

import zlib
import struct
image=open("misc35.png","rb").read()
for i in range(900,1200):image1=open(str(i-900)+'.png','wb')change=image[:image.index(b'\x02\x96\x03\x84')+2]+struct.pack('>h',i)+image[image.index(b'\x02\x96\x03\x84')+4:]image1.write(change)image1.close()

ctfshow{ca35201ca9ed607e5a68f44ef573fbc3}

misc36

提示:出题人坦白从宽,正确的宽度在920-950之间
先把gif的高度改了,记得要改两处。

import zlib
import struct
image=open("misc36.gif","rb").read()
for i in range(920,950):image1=open(str(i-900)+'.gif','wb')change=image[:image.index(b'\x00\x00\x84\x03\x90\x01')+2]+struct.pack('>h',i)[::-1]+image[image.index(b'\x00\x00\x84\x03\x90\x01')+4:]image1.write(change)image1.close()

ctfshow{1ebf739f832906d60f57436b8179166f}

misc37

提示:flag在图片里
flag存在其中的几帧,直接看就可以。




ctfshow{2056782cd57b13261dcbbe3d6eecda17}

misc38

提示:flag在图片里
是一个动态的png

用工具APNG Disassembler分离(下载地址)

然后找就行

ctfshow{48b722b570c603ef58cc0b83bbf7680d}

misc39

提示:flag就像水,忽快忽慢地流
看了v3

CTF.show:misc入门24-49相关推荐

  1. MISC 入门隐写之用眼睛去倾听

    MISC 入门隐写之用眼睛去倾听 使用工具Audacity pc直接下载windows版本即可,安装只需要选择安装目录,其他均点下一步即可完成安装. 题目:MISC入门 点击链接下载题目,得到flag ...

  2. CTFshow——MISC入门

    MISC入门 图片篇(基础操作) misc1 misc2 misc3 misc4 图片篇(信息附加) misc5 misc6 misc7 misc8 misc9 misc10 misc11 misc1 ...

  3. ctfshow 做题 MISC入门 模块 41-50

    ctfshow 做题 MISC入门 模块 41-50 -- misc41 题目描述: H4ppy Apr1l F001's D4y! 愚人节到了,一群笨蛋往南飞,一会儿排成S字,一会儿排成B字. 直接 ...

  4. ctf安全竞赛入门pdf_CTF安全竞赛入门

    要问学习网络安全的小伙伴们最想快速提升的技能是啥,可能很多小伙伴都会选择CTF了! CTF是一种流行的信息安全竞赛形式,其英文名可直译为"夺得Flag",也可意译为"夺旗 ...

  5. PL0编译器TurboPascal版再现时间:2009-07-20 17:24:49来源:网络 作者:未知 点击:52次

    PL0编译器TurboPascal版再现时间:2009-07-20 17:24:49来源:网络 作者:未知 点击:52次 (********************* PL0 编译程序Turbo Pa ...

  6. CTF|pwn栈溢出入门题level3解题思路及个人总结

    CTF|pwn栈溢出入门题level3解题思路及个人总结 解题思路 拿到题目将文件下载下来拖入ubuntu 发现这一次的文件比较特殊:是一个linux环境下的压缩包,自然而然想到的是解压它 通过命令行 ...

  7. 阿里云【名师课堂】Java零基础入门24 ~ 26:方法的定义与使用

    阿里云[名师课堂]Java零基础入门24 ~ 26:方法的定义与使用 24:方法的基本定义 无返回值无参数 无返回值有参数 有返回值有参数 25:方法重载(重点) 26:方法递归调用 24:方法的基本 ...

  8. CTF之MISC题目-西游记

    CTF系列文章 第一篇 CTF之密码学题目-classical && coding 第二篇 CTF之MISC题目-西游记 第三篇 CTF之MISC题目-简单流量 文章目录 CTF系列文 ...

  9. 攻防世界Misc入门题之掀桌子

    攻防世界Misc入门题之掀桌子 继续开启全栈梦想之逆向之旅~ 这题是攻防世界Misc入门题之掀桌子 题目是一串16进制数,因为只有0~f,不是base64,直接扔到十六进制转字符串: 好的,不知道转了 ...

  10. 攻防世界Misc入门题之坚持60s

    攻防世界Misc入门题之坚持60s 继续开启全栈梦想之逆向之旅~ 这题是攻防世界Misc入门题之坚持60s 下载附件,一开始我默认用压缩包对jar文件,搞到一解压出来还以为是某个游戏存档,后来才发现是 ...

最新文章

  1. python3 random函数_Python3 中 random模块
  2. 腾讯企点总经理张晔:To B企业存在的价值是什么?丨鲸犀峰会
  3. 算法与数据结构(稀疏数组)
  4. java时间比较_广州java培训大概多久时间可以毕业
  5. “北斗女神”徐颖:科研时间一定大于996
  6. 哈利波特与魔杖的故事(洛谷P4613题题解,Java语言描述)
  7. MySQL数据查询SELECT大全
  8. CentOS安装lynis安全漏洞扫描工具
  9. 帕累托分布(Pareto distributions)、马太效应
  10. ngx-datatable列表细节属性
  11. 考研前夕 — 成人的世界里没有那么多童话
  12. --------乱弹琴-------创造价值----侵略--和扩张
  13. html网页课件,HTML网页制作-教学课件.ppt
  14. mybatisplus 自增主键失效,自增主键超大
  15. 钉钉授权时报获取钉钉用户信息失败,失败原因:访问ip不在白名单之中的解决办法
  16. Ajax请求数据格式
  17. react基础教程学习(一)
  18. dependence walker
  19. Gradle下载超时
  20. 英语作文计算机80词九年级,10篇初中优秀英语作文80词左右

热门文章

  1. 返利网是如何做到订单跟踪的?
  2. Solid Edge如何制作爆炸图
  3. 服务器2003设置共享文件夹共享文件夹,WinServer2003 文件夹共享 方法设置
  4. 26-TeamBuilding-团队建设
  5. 新一代智能会议中控系统
  6. python 金融发欺诈_python金融反欺诈-项目实战
  7. 实现虚拟机与板卡/树莓派网络互联,并通过笔记本wifi共享上网
  8. 2019年3月6日-KS103的使用
  9. cocos2d AABB碰撞检测
  10. c++实现n阶行列式计算