🕵️♂️ 专栏《解密游戏-Bandit》
🌐 游戏官网: Bandit游戏
🎮 游戏简介: Bandit游戏专为网络安全初学者设计,通过一系列级别挑战玩家,从Level0开始,逐步学习基础命令行和安全概念。玩家需通过阅读信息、使用命令和解决问题来完成每个级别。在不清楚时建议查阅手册、使用内建命令或搜索引擎,旨在培养初学者的基本技能。
📖 博客说明: 本系列博客记录个人通关教程,一起探索网络安全的奇妙世界吧! 🚀
零、Level 12 → Level 13
游戏直通车->🚗 🚕 🚙
一、关卡解读
密码在data.txt文件里,data.txt文件是一个被多次压缩的文件的hexdump。
二、通关教程
首先解释下题目的意思,假设有个文件A,现在将其多次压缩为B,将其执行hexdump命令,得到data.txt文件。
所以,我们需要先反向的执行hexdump命令,得到B文件,然后再反复解压,得到A文件,得到密码。
hexdump命令可以将文件内容以十六进制、十进制、八进制以及ASCII码形式展示:
cat查看data.txt,发现里面数据存在f,表面是十六进制:
所以,现在就需要先将其还原成二进制编码。查看hexdump命令的官方教程,并没有发现可以逆向的操作。
观察题目,题目中提到一个xxd命令,通过man xxd查看官方教程:
发现这个命令可以对hexdump文件做逆向操作。
由于游戏服务器权限设置,我们只能在/tmp文件夹中操作。
先随便创建一个属于我们自己的文件夹,/tmp/myownfile:
mkdir /tmp/myownfile
将data.txt复制到刚才创建的文件夹中:
cp data.txt /tmp/myownfile
cd到/tmp/myownfile中,方便后续操作。
通过xxd命令的-d操作,将十六进制编码文件转换为二进制编码文件:
执行xxd -b data.txt >> data_2.txt
命令,将转换后的二进制编码文件保存到data_2.txt中。
通过file命令,查看data_2.txt的文件类型:
但是发现还是ASCII text文件,并不是我们想要的压缩文件。所以很可能是方向错了。
通过重新查看xxd的教程,发现一个-r命令,可以用于逆向hexdump的文件:
利用 xxd -r data.txt >> data_r.txt
将hexdump后的data.txt逆向为data_r.txt,通过file命令,查看到,data_r.txt是gzip文件:
接下来就可以开始使用gzip命令解压了。
通过查看官方教程(man gzip),找到gzip命令的解压命令:
尝试解压:
发现后缀不对,通过cp命令,修改data_r.txt为data_r.gz,再次解压:
通过gzip -d data_r.gz
解压后,data_r.gz变成了data_r。再次执行file命令查看data_r的类型:
发现现在data_r文件是bzip2类型了,我们修改data_r为data_r.bz2(cp data_r data_r.bz2
)。接着,利用bzip2解压bzip2 -d data_r.bz2 -f
。解压得到新的data_r文件:
发现又是一个gzip文件,重复前面的操作,解压。
这次解压后,是tar压缩文件了,修改后缀为.tar(cp data_r data_r.tar
),然后解压(tar -xvf data_r.tar
):
解压得到一个data5.bin文件,继续查看类型:
依然是tar文件,重复tar解压:
重复解压,最终得到密码:wbWdlBxEir4CaE8LaPhauuOo6pwRmrDw
Voila!
,恭喜通关🎉🥳~
三、学习资料
推荐一个不错的Linux命令学习网站:Linux Tutorial
👨💻 关于我:我是zh4men9,一个曾经有过网安梦的孩子。如果你对我的学习经验和网络安全故事感兴趣,欢迎访问我的CSDN博客:CSDN博客。
📚 更多分享: 你还可以在我的知乎博客上找到我更多的观点和经验分享:知乎博客。
💻 GitHub链接: 如果你对我的项目和代码感兴趣,可以在我的GitHub上找到更多:GitHub链接。