前面的题都是分离和提取其中的ascii码,还有data数据错误需要利用tweakpng工具,太过于简单不讲解。此篇文章为复习笔记,不给予flag,给予都是思路和解题方式。
如图提示
发先右边ASCII码的flag值不完整,规律也很简单,每两位取其中一位,那么以python数列写法就是[0:len:2]从第一位到最后一位,每次走两步。循环以range的写法就是(0,len(str),2)
脚本如下,
import re
str = "c▒t¹f…s†hªoKw°{!aeS6¥eT34exa%4Ý8ïf«51•8b‚7ºeE4|2Td~7:däeñ6úfõ412fT8ñ329éal}"
flag= ""
str_len = len(str)
for j in range(0,str_len,2):
flag += (str[j])
print (flag)
发现似乎有两张图片,但是foremost分离不了
采用dd命令进行分离
string misc15.png|grep ctf //打印图片二进制转换成的ascii值
分离图片 foremost ,dd分离
如题所说,flag在图片里
发现数据中有可疑的内容
尝试导出内容
zsteg导出内容的用法
zsteg -E "b1,bgr,lsb,xy" pcat.png > p.exe
将图片里的异常的内容导出到1.txt中
binwalk -e 命令提取已知文件的类型
生成了一个目录,重命名png格式就获取到flag值了
根据题目提示,exiftool命令查看文件属性的信息
根据题目的提示,flag在主机上的文档名里。
和上题一样,exiftool搜索一下就能招到flag了。
扩展:file命令可以识别文件的类型,也能看见名字
根据题目提示,flag在评论里。
我也懒得输入flag了,知道怎么做进行了,谐音字输入进去即可。
exiftool misc20.jpg查看图片的信息,可以发现有一丢中文
根据题目提示,flag在序号里。
使用exiftool查看文件的属性找到这一行,序列号的英文名为serial number
可能是十六进制字符串,尝试转成ascii码
根据序列号的提示,也就是说把X值和Y值转为十六进制就是flag
那么在文件属性里可以找到两组xy,依次按顺序进行转换成hex值。
脚本如下:
x1 = '3902939465'
y1 = '2371618619'
x2 ='1082452817'
y2 ='2980145261'
flag1 = (hex(int(x1,10))[2:])
flag2 = (hex(int(y1,10))[2:])
flag3 = (hex(int(x2,10))[2:])
flag4 = (hex(int(y2,10))[2:])
print('ctfshow{'+flag1 + flag2 + flag3 + flag4+'}')
通过题目的提示和命令的分析,思路有两种,那么就是data数据需要删除,或者是缩略图。
生成image.raw的缩略图thumbnail.jpg
exiftool -b -ThumbnailImage image.raw > thumbnail.jpg
根据题目提示,**flag在时间里。**如图,最后把时间搓分别转为十六进制,解题思路和21题一致
后续将更新misc的图片结构,有什么不会的都可以找我私信