BUUCTF MISC刷题笔记(三)

Misc

[MRCTF2020]pyFlag

三个图片尾部都有额外数据
BUUCTF MISC刷题笔记(三)
按顺序拼在一起,另存为zip文件,里面有俩txt,爆破得到密码1234
BUUCTF MISC刷题笔记(三)
hint.txt:

我用各种baseXX编码把flag套娃加密了,你应该也有看出来。
但我只用了一些常用的base编码哦,毕竟我的智力水平你也知道…像什么base36base58听都没听过
提示:0x10,0x20,0x30,0x55

flag.txt:

G&eOhGcq(ZG(t2*H8M3dG&wXiGcq(ZG&wXyG(jtG&eOdGcq+aG(t5oG(jqG&eIeGcq+aG)6Q<G(jrG&eOdH9<5qG&eLvG(jsG&nRdH9<8rG%++qG%__eG&eIeGc+|cG(t5oG(jsG&eOlH9<8rH8C_qH9<8oG&eOhGc+_bG&eLvH9<8sG&eLgGcz?cG&3|sH8M3cG&eOtG%_?aG(t5oG(jtG&wXxGcq+aH8V6sH9<8rG&eOhH9<5qG(<E-H8M3eG&wXiGcq(ZG)6Q<G(jtG&eOtG%+<aG&wagG%__cG&eIeGcq+aG&M9uH8V6cG&eOlH9<8rG(<HrG(jqG&eLcH9<8sG&wUwGek2)

根据hint可以知道可能有base16、32、48、85

先用Python进行base85解码一次
BUUCTF MISC刷题笔记(三)
再base16解码一次

GU2DKNRUIE2DINJWGQ2TKQJTG42TONJUGQZDGMJVHAZTANBWG44TKQJVGYZTQMZQGU4DGMZUGE3UCNRTGZBDKQJWIM2TSMZTGUZDMNRVIE2DONJWGZATIRBUG42TENSDGYZTMRJTGAZUI===

然后base32

54564A4456455A3757544231583046795A5638305833417A636B5A6C593352665A47566A4D47526C636E303D

再16

TVJDVEZ7WTB1X0FyZV80X3AzckZlY3RfZGVjMGRlcn0=

最后来一下base64

MRCTF{Y0u_Are_4_p3rFect_dec0der}

Business Planning Group

图片结尾有点东西,这个其实是bpg文件,misc入门的misc3考过
BUUCTF MISC刷题笔记(三)
提取出来保存为bpg文件,不过windows下不能直接查看,参考上面那篇博客,下载工具查看

图片里有字符串
BUUCTF MISC刷题笔记(三)

YnNpZGVzX2RlbGhpe0JQR19pNV9iM3R0M3JfN2g0bl9KUEd9Cg==

base64解码得到bsides_delhi{BPG_i5_b3tt3r_7h4n_JPG}

[ACTF新生赛2020]剑龙

BUUCTF MISC刷题笔记(三)
先看hint.zip的内容,里面有两个文件
BUUCTF MISC刷题笔记(三)
看一下txt

゚ω゚ノ= /`m´)ノ ~┻━┻   //*´∇`*/ ['_']; o=(゚ー゚)  =_=3; c=(゚Θ゚) =(゚ー゚)-(゚ー゚); (゚Д゚) =(゚Θ゚)= (o^_^o)/ (o^_^o);(゚Д゚)={゚Θ゚: '_' ,゚ω゚ノ : ((゚ω゚ノ==3) +'_') [゚Θ゚] ,゚ー゚ノ :(゚ω゚ノ+ '_')[o^_^o -(゚Θ゚)] ,゚Д゚ノ:((゚ー゚==3) +'_')[゚ー゚] }; (゚Д゚) [゚Θ゚] =((゚ω゚ノ==3) +'_') [c^_^o];(゚Д゚) ['c'] = ((゚Д゚)+'_') [ (゚ー゚)+(゚ー゚)-(゚Θ゚) ];(゚Д゚) ['o'] = ((゚Д゚)+'_') [゚Θ゚];(゚o゚)=(゚Д゚) ['c']+(゚Д゚) ['o']+(゚ω゚ノ +'_')[゚Θ゚]+ ((゚ω゚ノ==3) +'_') [゚ー゚] + ((゚Д゚) +'_') [(゚ー゚)+(゚ー゚)]+ ((゚ー゚==3) +'_') [゚Θ゚]+((゚ー゚==3) +'_') [(゚ー゚) - (゚Θ゚)]+(゚Д゚) ['c']+((゚Д゚)+'_') [(゚ー゚)+(゚ー゚)]+ (゚Д゚) ['o']+((゚ー゚==3) +'_') [゚Θ゚];(゚Д゚) ['_'] =(o^_^o) [゚o゚] [゚o゚];(゚ε゚)=((゚ー゚==3) +'_') [゚Θ゚]+ (゚Д゚) .゚Д゚ノ+((゚Д゚)+'_') [(゚ー゚) + (゚ー゚)]+((゚ー゚==3) +'_') [o^_^o -゚Θ゚]+((゚ー゚==3) +'_') [゚Θ゚]+ (゚ω゚ノ +'_') [゚Θ゚]; (゚ー゚)+=(゚Θ゚); (゚Д゚)[゚ε゚]='\'; (゚Д゚).゚Θ゚ノ=(゚Д゚+ ゚ー゚)[o^_^o -(゚Θ゚)];(o゚ー゚o)=(゚ω゚ノ +'_')[c^_^o];(゚Д゚) [゚o゚]='"';(゚Д゚) ['_'] ( (゚Д゚) ['_'] (゚ε゚+(゚Д゚)[゚o゚]+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (o^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+((o^_^o) +(o^_^o))+ (o^_^o)+ (゚Д゚)[゚ε゚]+(゚ー゚)+ (゚Θ゚)+ (゚Д゚)[゚o゚]) (゚Θ゚)) ('_'); 

在线网址解密一手,得到welcom3!
BUUCTF MISC刷题笔记(三)
得到的这个应该是密码,说明hh.jpg应该是某种隐写,测试发现是steghide
BUUCTF MISC刷题笔记(三)
解出的内容如下:

想要flag吗?解出我的密文吧~
U2FsdGVkX1/7KeHVl5984OsGUVSanPfPednHpK9lKvp0kdrxO4Tj/Q==

U2F开头,应该是AES或者DES这种,不过一般需要密码,再去找一下密码的线索,在图片的exif信息中
BUUCTF MISC刷题笔记(三)
BUUCTF MISC刷题笔记(三)
这里解出来让找一下stegosaurus,在github上找到https://github.com/AngelKitty/stegosaurus

这个工具我以前做题的时候用过,详细介绍可以看这篇博客

题目中给的O_O其实是一个pyc文件,改回后缀后使用这个工具解一下就行
BUUCTF MISC刷题笔记(三)

[GWCTF2019]huyao

给了两张一样的图片,应该是盲水印
BUUCTF MISC刷题笔记(三)
盲水印的话我遇到过三种,具体在另一篇博客介绍过

这里试了一下发现是频域盲水印,上脚本

# coding=utf-8 import cv2    import numpy as np import random import os from argparse import ArgumentParser ALPHA = 5 def build_parser():     parser = ArgumentParser()     parser.add_argument('--original', dest='ori', required=True)     parser.add_argument('--image', dest='img', required=True)     parser.add_argument('--result', dest='res', required=True)     parser.add_argument('--alpha', dest='alpha', default=ALPHA)     return parser def main():     parser = build_parser()     options = parser.parse_args()     ori = options.ori     img = options.img     res = options.res     alpha = options.alpha     if not os.path.isfile(ori):         parser.error("original image %s does not exist." % ori)     if not os.path.isfile(img):         parser.error("image %s does not exist." % img)     decode(ori, img, res, alpha) def decode(ori_path, img_path, res_path, alpha):     ori = cv2.imread(ori_path)     img = cv2.imread(img_path)     ori_f = np.fft.fft2(ori)     img_f = np.fft.fft2(img)     height, width = ori.shape[0], ori.shape[1]     watermark = (ori_f - img_f) / alpha     watermark = np.real(watermark)     res = np.zeros(watermark.shape)     random.seed(height + width)     x = range(height / 2)     y = range(width)     random.shuffle(x)     random.shuffle(y)     for i in range(height / 2):         for j in range(width):             res[x[i]][y[j]] = watermark[i][j]     cv2.imwrite(res_path, res, [int(cv2.IMWRITE_JPEG_QUALITY), 100]) if __name__ == '__main__':     main() 

命令:python BlindWaterMarkplus.py --original 1.png --image 2.png --result res.png

拿到flag{BWM_1s_c00l}
BUUCTF MISC刷题笔记(三)

[UTCTF2020]File Carving

尾部有额外数据,提取出来另存为zip文件
BUUCTF MISC刷题笔记(三)
解压后拿到文件hidden_binary,看了一下发现是ELF文件,果断放进kali里运行一下
BUUCTF MISC刷题笔记(三)
这里遇到一个小问题,但是顺利解决了 ,同时学到一个命令

chmod u+x somefile 只授予这个文件的所属者执行的权限 

[GUET-CTF2019]soul sipse

下载得到out.wav,拿Audacity分析下,没啥东西

那应该就是隐写了,一般情况下是mp3stego,不过这题居然是steghide,属实少见

这里没有密码,解出一个txt
BUUCTF MISC刷题笔记(三)

https://share.weiyun.com/5wVTIN3

把文件下载下来,显示异常,原来是文件头有问题
BUUCTF MISC刷题笔记(三)
修复好文件头,图片内容如下
BUUCTF MISC刷题笔记(三)
unicode解码一下
BUUCTF MISC刷题笔记(三)
两个数加起来就是flag:flag{5304}

[watevrCTF 2019]Evil Cuteness

尾部有额外数据,另存为zip
BUUCTF MISC刷题笔记(三)
解压得到无后缀文件abc
BUUCTF MISC刷题笔记(三)
就这…

[UTCTF2020]sstv

又是一个wav,百度一下题目名sstv,发现这玩意有点神奇啊
BUUCTF MISC刷题笔记(三)
这里用到工具QSSTV

在linux下安装:apt install qsstv

安装完打开qsstv,操作一波即可,关于qsstv的具体使用参考这篇文章
BUUCTF MISC刷题笔记(三)

[UTCTF2020]spectogram

直接看频谱图…
BUUCTF MISC刷题笔记(三)

我爱Linux

下载的图片打不开,发现是png的文件头,jpg的文件尾
BUUCTF MISC刷题笔记(三)
定位到jpg尾部之后,发现后面的数据比较奇怪,看了大佬的wp得知这种数据格式是Python的序列化文件
BUUCTF MISC刷题笔记(三)
把这些数据提取出来,保存在1.txt中
BUUCTF MISC刷题笔记(三)
找到一篇Python反序列化的文章:https://jingyan.baidu.com/article/0bc808fcb7f91e5bd585b97d.html,跟着步骤写脚本

import pickle f=open("1.txt","rb") result=pickle.load(f) f.close() f1=open("out.txt","w") f1.write(str(result)) f1.close() 

得到一些坐标:
BUUCTF MISC刷题笔记(三)
写一手脚本给它画出来:

f=open("out.txt","r") txt=eval(f.read()) for i in range(len(txt)):     s=""     for j in range(1,77):         n=0         for k in txt[i]:             if k[0] == j:                 n=1                 break         if n:             s+=k[1]         else:             s+=" "     print(s) f.close() 
BUUCTF MISC刷题笔记(三)
flag{a273fdedf3d746e97db9086ebbb195d6} 

版权声明:玥玥 发表于 2021-05-09 22:17:33。
转载请注明:BUUCTF MISC刷题笔记(三) | 女黑客导航