目录
题目来源ctf杂项50
一张图片题目
1.图片用010打开后,发现这张图片数据过多,搜索到flag.zip压缩包文件可能需要分离文件
2.使用binwaik发现有压缩包,分离后
3.发现压缩包注释有base32编码,解密后是123456
4.发现flag压缩包解压需要密码,是刚才解密的123456密码。
发现里面的文件是从0-9符合十进制,
5. 使用脚本转16进制后,再转字符发现是乱码
6.发现上面0-9的文件不是十进制而是十六进制,尝试将文件开头几个数字进行16转字符发现确实符合.。并且其中有大量的0x,并且发现377a是7z的文件头
7.通过脚本将0x去掉,然后写入txt文件。
写入txt中发现需要将字符转bits,否者不能输出txt文件
replace()函数替换指定字符
8.发现打印出来的结果导入十六进制编辑器后,不是正确的7z文件夹。查找原因后发现每一个0x后面必须是两个字节否者往前补零,增加补零脚本
split()函数分析
zfill()函数分析
9.最后成功导入(是导入而不是复制,复制会出差)十六进制编辑器,生成7z压缩包
10.生成的7z压缩包解压需要密码
11.使用foremost分离查看有没有其他东西
12.发现还有一张分离后的图片,用编辑器打开后发现最后有类似于base编码的密文
通过base64解码后得到base32,再次解码后获得钥匙
13.解开压缩包后发现是一大块密文,密文结尾有==号,猜测是base编码
14.查看wp发现是base64和base32混合编码
研究脚本
Re.match()函数
15.进行多长解码后得到ook编码进行解码后得到brainfucck编码再次进行解码得到flag
题目:总结,使用kali分离数据时。binwaik和foremost都尝试一遍。Foremost与binwalk不同的是前者会将源文件分离出来后,会留下分离后的东西。编写脚本对长密文进行解码时,先取一小段使用工具进行解码,确定是不是对这种进行解码。
题目rsa中求d
1.直接敲公式可解