hint:LSB BGR NTFS
可以判断出来出来这很可能是一个 LSB 的图片隐写。(最低有效位LSB隐写 least significant bit)
点击 png,先将文件下载下来并改后缀 png
1、用Stegsolve分析了一下,发现当RBG(三原色:红蓝绿)分别处于0的时候,图像会很不正常
Stegsolve使用方法:https://www.cnblogs.com/cat47/p/11483478.html
2、得到了上面的16进制数,复制后保存下来(save bin)
不过png图片开头是89504e47,所以在十六进制编辑器打开把前面的fffe删掉,得到半张二维码——》修改宽高
修改宽高后:
扫描得:
3、想到提示中NTFS
hint:LSB BGR NTFS
4、然后用ntfstreamseditor,选择压缩文件后有falg.txt的文件夹,点击搜索查看解压的文件夹里面的数据流,然后把他导出来,得到一个pyc文件,也就是py编译后的文件,再到网上在线反编译:
NtfsStreamsEditor可以实现对NTFS数据流的扫描、删除、附加、导入、导出、备份和还原等完整处理手段,是Ntfs数据流处理的强大工具。
导出——》
.pyc文件,直接丢到这——》https://tool.lu/pyc/
#!/usr/bin/env python
# visit http://tool.lu/pyc/ for more information
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']
这显然是个对称加密,因此写个解密函数:
自己写一个解密脚本:
def decode():
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.reverse()
flag = ''
for i in range(len(ciphertext)):
if i % 2 == 0:
s = int(ciphertext[i]) - 10
else:
s = int(ciphertext[i]) + 10
s=chr(i^s)
flag += s
return flag
def main():
flag = decode()
print(flag)
if __name__ == '__main__':
main()
flag{Y@e_Cl3veR_C1Ever!}