这题是个不错的题目,涉及到的知识点挺多的。
下载附件得到一个猫的图片,把常规图片隐写的套路都走一遍,010打开没有什么发现,直接扔进kali binwalk分析一下
在这里可以看到图片里没藏有东西,但是发现了color RGB。想到lsb隐写,用stegsolve打开在BGR中看到有个png图片
以png格式保存下来,打开显示格式错误,010打开发现文件头多加了点东西
删了之后得到半张二维码图片,010打开把它修改为正常的高度,得到完整的二维码图片,此时发现二维码的颜色反了,用stegsolve打开进行异或取反,得到正常二维码图片
好吧。。。其实这题不调整过来也能扫得出东西。扫码之后进入百度网盘链接下载一个flag.rar文件提取得到flag.txt文件,以为能得到flag了,没想到啊,简直不当人。。。摆弄了很久,实在是不懂怎么办了,看了一下大佬的wp,发现这里竟然有个ntfs数据流隐写。。。打开NtfsStreamsEditor软件进行搜索数据,又是一顿搜索,就是没有结果,后来发现用这个软件进行搜索必须得用win.rar进行提取才能搜索得出
可以看到有个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