ctfshow-Misc入门-图片篇(持续缓慢更新)
前言废物web狗只会web,结果就是比赛的时候web一道不会,其他方向也是一点也不会,菜死我了呜呜呜要开始学习一下MISC,跟着八神的MISC入门来慢慢学习,整篇文章可能不会有自己独立解出的题目(小白落泪),暂时只能跟着网上师傅们的WP慢慢的来学习MISC的图片篇中的各种隐写姿势,但是MISC的学习只是真的课余了,主要还是去学习web,大概会1-2天做1-2题,这样慢慢的学习,相信日积月累下去,自
前言
废物web狗只会web,结果就是比赛的时候web一道不会,其他方向也是一点也不会,菜死我了呜呜呜要开始学习一下MISC,跟着八神的MISC入门来慢慢学习,整篇文章可能不会有自己独立解出的题目(小白落泪),暂时只能跟着网上师傅们的WP慢慢的来学习MISC的图片篇中的各种隐写姿势,但是MISC的学习只是真的课余了,主要还是去学习web,大概会1-2天做1-2题,这样慢慢的学习,相信日积月累下去,自己的MISC也可以成长起来。
misc1
图片的内容就是flag,利用一下QQ图片的那个提取图片中的文字,就可以免于手打了。
misc2
得到的是txt文件,主要还是看文件头,可以记事本直接打开,看到这个:
这个塒NG开头就是png文件了,也可以winhex打开:
可以看到PNG的文件头,把.txt改成.png就可以打开图片了,图片内容就是flag。
从别的师傅那里看到了用python获得图片中文字的方法:
import pytesseract
from PIL import Image
pytesseract.pytesseract.tesseract_cmd = r'D:\应用\Tesseract-OCR\tesseract.exe'
tessdata_dir_config = r'--tessdata-dir "D:\应用\Tesseract-OCR\tessdata"'
image=Image.open(r"D:\this_is_feng\CTF\MISC\ctfshow_misc入门\misc2\misc2.png")
code = pytesseract.image_to_string(image, config=tessdata_dir_config)
print(code)
关于pytesseract,可以参考这个:
Python3使用 pytesseract 进行图片识别
学到了,学到了。
misc3
是bpg图片,正常不能打开,需要使用能查看bpg图片的软件打开,进行下载:
bpg
然后命令行使用即可。
./bpgview.exe D:\this_is_feng\CTF\MISC\ctfshow_misc入门\misc3\misc3.bpg
misc4
这题看了第一个图片的头是png,就把所有的图片后缀都改成png,然后把每个图片中的内容拼接出来就是flag。
但是看了别的师傅的WP,其实这样并不太对,因为真正的只有第一个图片的png,其他的几个txt都不是png图片,网上查了一下:
-
JPEG
文件头:FF D8 FF
文件尾:FF D9 -
TGA
未压缩的前4字节 00 00 02 00
RLE压缩的前5字节 00 00 10 00 00 -
PNG
文件头:89 50 4E 47 0D 0A 1A 0A
文件尾:AE 42 60 82 -
GIF
文件头:47 49 46 38 39(37) 61
文件尾:00 3B -
BMP
文件头:42 4D
文件头标识(2 bytes) 42(B) 4D(M) -
TIFF (tif)
文件头:49 49 2A 00
-
ico
文件头:00 00 01 00
-
Adobe Photoshop (psd)
文件头:38 42 50 53
所以第二个是jpg,第三个是bmp,第四个是gif,第五个是tif,第六个是webp文件。
misc5
做出来了我青结,虽然是最简单的misc。。。。
用winhex打开图片搜索ctfshow{,在最后找到flag。
misc6
同上
misc7
提示是:
flag在图片文件信息中。
我以为就是右键属性,藏在这里,但是发现没有:
winhex打开,搜索直接找到了flag。看了别的师傅的wp:
直接右键查看属性是常用的方法,不过获取不到图片的全部文件信息,也得不到这题的flag
不过这玩意还是看不到flag,只是信息比较全罢了,不过先收藏着,以后或许用得到。
misc8
flag在图片文件中图片文件中。
没太懂这提示是什么意思,看了一下WP,是图片中还隐写了其他图片:
可以使用binwalk或者foremost,参考文章:
MISC中图片隐藏文件分离
再去output目录里面去看分离出来的所有文件,有一张打开就可以看到flag,再转文字即可。
学到了学到了,binwalk和foremost这两个还要再学习学习,熟练一下。
misc9
提示在图片块里,师傅们说是也就是数据块。但是其实这题直接winhex打开搜索也可以直接发现flag。
用010Editor看一下的话,这个 chunk估计就是所谓的数据块了。
misc10
知识盲区,提示flag在图片数据里。图片数据又是个什么鬼。。。。
查了一下。
用binwalk看一下,发现有2个Zlib compressed data。
Binwalk工具的详细使用说明
使用binwalk -e
来提取一下文件。
打开第一个文件就可以得到flag。
八神关于原理的解释:
学到了,学到了。
misc11
又学到新东西了,提示是:
flag在另一张图里。
拿010 Editor打开看一下,发现和上一题一样有2个IDAT块,我想既然是另一张图,以为还是之前那样,把IDAT块取出来然后解压就可以得到另一张图片了,但是发现没有。。。
看了一下别的师傅的WP,这题原来是要删除第一个IDAT块,这样得到的新的图片就可以得到flag了。
删除IDAT块比较方便的是使用tweakpng这个工具:
Tweakpng
只需要右击第一个IDAT块,然后delete就行了。
misc12
做法同上,删掉前8个IDAT数据块就可以了。
misc13
flag位置在图片末尾。
我一开始以为是图片的IEND块有问题,但是改了发现还是没flag。。。。
看了一下WP,原来是图片末尾有这么一块:
可以看到c t f s h o w,隔一个字符取一个,写一个脚本跑出来:
a="631A74B96685738668AA6F4B77B07B216114655336A5655433346578612534DD38EF66AB35103195381F628237BA6545347C3254647E373A64E465F136FA66F5341E3107321D665438F1333239E9616C7D"
flag=""
for i in range(0,len(a),4):
hexStr=a[i:i+2]
flag+=chr(int("0x"+hexStr,16))
print(flag)
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)