【misc】buu-面具下的flag——zip伪加密+用NTFS流隐藏文件
依赖
- Windows10
- 虚拟机Ubuntu20.04
- 开源工具foremost
zip伪加密
作者:hans774882968以及hans774882968以及hans774882968
本文52pojie:https://www.52pojie.cn/thread-1692457-1-1.html
本文juejin:https://juejin.cn/post/7147192971103272990/
本文csdn:https://blog.csdn.net/hans774882968/article/details/127037336
题目给了我们一个mainju.jpg
,图片无特殊信息,因此我们首先尝试去找其中的隐藏文件。在power shell里使用foremost开源工具:
.\foremost -i <mainju.jpg的路径>
可以获得一个zip文件。但是解压要求密码。因为没有任何提示(比如密码范围可枚举、有其他隐藏的数据),所以可以考虑这个zip是否是伪加密。根据参考链接1,搜索50 4b 01 02
(只有1处出现),找到压缩源文件目录区,把其第9个字节从09
修改为00
,即可去除伪加密。
2.jpg
zip解压获得flag.vmdk
。
vmdk也是一种压缩包,可以用7z解压。在Ubuntu下,先安装7z,再解压flag.vmdk
:
sudo apt install p7zip-full # 注意要安装full的,而不是仅仅p7zip7z x flag.vmdk -o./flag # 注意这里-o和输出路径之间没有空格的。解压到flag文件夹(不存在会自动创建)
我们可以在Ubuntu下直接看到所有相关的文件,tree
命令安装见附录2。
1.jpg
但如果你是在Windows下解压的,那么因为文件名带冒号的文件被视为NTFS
流的非主文件流(简称非主流),所以你看不见这些文件。附录1提供了一个NTFS
的入门实验,像我这么鶸的可以过一遍qwq。
获取flag
key_part_one
和key_part_two
涉及Brainfuck
和Ook!
。根据参考链接2,可以在这个网站运行Brainfuck和Ook!代码。
key_part_one/NUL
:
+++++ +++++ [->++ +++++ +++<] >++.+ +++++ .<+++ [->-- -<]>- -.+++ +++.<++++[ ->+++ +<]>+ +++.< +++++ +[->- ----- <]>-- ----- --.<+ +++[- >----<]>-- ----- .<+++ [->++ +<]>+ +++++ .<+++ +[->- ---<] >-.<+ +++++ [->++++++< ]>+++ +++.< +++++ [->-- ---<] >---- -.+++ .<+++ [->-- -<]>- ----- .<