buuctf_Misc-喵喵喵

这题是个不错的题目,涉及到的知识点挺多的。

下载附件得到一个猫的图片,把常规图片隐写的套路都走一遍,010打开没有什么发现,直接扔进kali binwalk分析一下

buuctf_Misc-喵喵喵_第1张图片

在这里可以看到图片里没藏有东西,但是发现了color RGB。想到lsb隐写,用stegsolve打开在BGR中看到有个png图片

buuctf_Misc-喵喵喵_第2张图片

 以png格式保存下来,打开显示格式错误,010打开发现文件头多加了点东西

buuctf_Misc-喵喵喵_第3张图片

删了之后得到半张二维码图片,010打开把它修改为正常的高度,得到完整的二维码图片,此时发现二维码的颜色反了,用stegsolve打开进行异或取反,得到正常二维码图片

buuctf_Misc-喵喵喵_第4张图片

好吧。。。其实这题不调整过来也能扫得出东西。扫码之后进入百度网盘链接下载一个flag.rar文件提取得到flag.txt文件,以为能得到flag了,没想到啊,简直不当人。。。摆弄了很久,实在是不懂怎么办了,看了一下大佬的wp,发现这里竟然有个ntfs数据流隐写。。。打开NtfsStreamsEditor软件进行搜索数据,又是一顿搜索,就是没有结果,后来发现用这个软件进行搜索必须得用win.rar进行提取才能搜索得出

buuctf_Misc-喵喵喵_第5张图片

 可以看到有个flag.pyc文件,将它导出。这是个py反编译文件 ,通过pyc反编译网站:https://tool.lu/pyc/ 进行反编译,得到结果如下:

import base64

def encode():
    flag = '*************'
    ciphertext = []
    for i in range(len(flag)):
        s = chr(i ^ ord(flag[i]))
        if i % 2 == 0:
            s = ord(s) + 10
        else:
            s = ord(s) - 10
        ciphertext.append(str(s))
    
    return ciphertext[::-1]

ciphertext = [
    '96',
    '65',
    '93',
    '123',
    '91',
    '97',
    '22',
    '93',
    '70',
    '102',
    '94',
    '132',
    '46',
    '112',
    '64',
    '97',
    '88',
    '80',
    '82',
    '137',
    '90',
    '109',
    '99',
    '112']

使用脚本进行解密

ciphertext = ['96', '65', '93', '123', '91', '97', '22', '93', '70', '102', '94', '132', '46', '112', '64', '97', '88',
              '80', '82', '137', '90', '109', '99', '112']
ciphertext = ciphertext[::-1]
flag = ''
for i in range(len(ciphertext)):
      if (i % 2 == 0):
            a = int(ciphertext[i]) - 10
      else:
            a = int(ciphertext[i]) + 10
      a = i ^ a
      flag = flag + chr(a)
print(flag)

最终得到flag

buuctf_Misc-喵喵喵_第6张图片

你可能感兴趣的:(ctf,Misc类,其他)