Bugku 猫片(安恒)
今天发现了一道又爱又恨的题,决定分享出来。
打开得到png用010editor打开发现为png文件,加上后缀得到
用010editor打开没有异常。
虚拟机binwalk一下,依然没有异常。
查看属性没有异常。
超乎我的想象。返回在题目中发现hint:LSB BGR NTFS
逐个浏览器搜索
hint:LSB BGR NTFS
LSB 最低有效位/最低有效字节
BGR R红 G绿 B蓝 RGB模式为色彩数据模式 ,这时说明RGB有问题
NTFS 是Windows NT内核的系列操作系统支持的、一个特别为网络和磁盘配额、文件加密等管理安全特性设计的磁盘格式,提供长文件名、数据保护和恢复,能通过目录和文件许可实现安全性,并支持跨越分区。(搜NTFS还能搜到一个磁盘读写工具)
于是用Stegsolve分析了一下,data extract发现如果RBG分别处于0的时候,图像会很不正常,进行设置得到PNG
用save bin保存一个副本,发现打不开,继续用010editor打开
发现文件头不对,删除 FFFE 保存得到
发现只有半个二维码,继续又010editor打开修改将高 00 00 00 8C
改成与高相同的 00 00 01 18。得到
扫码发现得到百度网盘内压缩文件flag.rar,保存到网盘下载减压。
哭了,平时就得到flag发现hint还有一个ntfs,咱也不知道啥,搜索借鉴了一下
最后根据hint里面的提示“NTFS”,根据大佬的说法,这是一种流隐写,需要用到工具
ntfstreamseditor,然而。。这里还有一个坑就是,这压缩文件一定要用winrar来解压才会产生这样的效果。下载WinRAR(本人平时用的bandzip),接着用ntfstreamseditor,查看解压的文件夹里面的数据流
将其导出得到一个pyc文件,也就是py编译后的文件,因此需要扔到网上去在线反编译一下
反编译出来很明显就是一个加密的脚本了,根据他这个加密的脚本再写出一个解密的脚本,运行一下就可以得到flag了
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']
Mikasa=ciphertext[::-1]
print(Mikasa)
flag=""
for i in range(len(Mikasa)):
for j in range(33,128):
s=chr(i^j)
if i%2==0:
s=ord(s)+10
else :
s=ord(s)-10
if str(s)==Mikasa[i]:
flag+=chr(j)
print(flag)
哈哈哈哈哈哈哈哈,终于得到了flag。
回想做出这个题的过程想打人。
今天就分享到这。
推荐阅读