buuoj复现
1,佛系青年
下载了之后是一个加密的txt文件和一张图片
分析图片无果,很讨厌这种脑洞题,MISC应该给一点正常的线索加部分脑洞而不是出干扰信息来故意让选手走错方向,当时比赛做这道题的时候也是醉了
接着将压缩包放进010Editor查看是否伪加密和其他线索
发现伪加密,将0900改成0000,保存之后打开txt文件
很明显最后一句是与佛论禅
在线解密得到:
2,gakki
下载压缩包之后是一张gakki的图片
foremost一下
分离之后得到了压缩包,同时需要密码
尝试数字爆破
得到密码8864
解密之
flag.txt文件里面是一大堆乱七八糟的字符,这种无规律的字符集我们就尝试字频统计
附上官方字频统计exp:(羡慕
跑一遍就得到flag了
这道题重在看到题目的意识。
3,SXMgdGhpcyBiYXNlPw==
先将题目base64解密
得到 Is this base?
下载附件
压缩包里面是flag.txt
看起来是很多的base64加密,尝试解密第一行的字符串,使用base64解码得到:
Cette nuit,
确实是base64加密,于是我们多行base64解密,得到:
有的解码之后因为编码不同出现了乱码。
去百度搜索了一下,原来这个是杀人狂想曲的歌词
但是有的地方好像又跟原曲子不太一样,一般这种文字很多的第一反应就会想到字频加密,不过前一道题目已经考过这个点了。
跑了一下字频加密也没有什么结果,因为是base64加密,所以考虑到是base64隐写,找到一篇介绍base64隐写的文章,贴上链接:
https://www.tr0y.wang/2017/06/14/Base64steg/index.html
base64隐写我记得在一道题里面遇到过。
贴上官方解释,学习一波:
base64是将3个8比特转换成4个6比特,最小的转换单位是24比特(6和8最小公倍数)
因此如果原文内容不足三字节,有一部分比特解码时候不需要,但会组成编码后的某个字符。
比如上图A的 0100 0001 被 base64 识别为 0100 0001 0000 然而最后四个比特解密时无
用。换句话说 0100 0001 0000 和0100 0001 1111 对应的原文都是 A ,因此可以使用这四
个比特进行隐写
如果官方题解没有看懂,简单说一下我自己的理解,base64隐写就是每一次base64编码之后不是都刚好占到了三个字节,当没有占到3个字节的时候,我们将base64编码最后的几个比特修改成我们想要隐藏的信息,同时并不影响base64的解码。
无处不在的隐写
知道原理之后用脚本跑一遍就行了
得到: