孩子还是有一颗网安梦——Bandit通关教程:Level 12 → Level 13

🕵️‍♂️ 专栏《解密游戏-Bandit》

🌐 游戏官网: Bandit游戏

🎮 游戏简介: Bandit游戏专为网络安全初学者设计,通过一系列级别挑战玩家,从Level0开始,逐步学习基础命令行和安全概念。玩家需通过阅读信息、使用命令和解决问题来完成每个级别。在不清楚时建议查阅手册、使用内建命令或搜索引擎,旨在培养初学者的基本技能。

📖 博客说明: 本系列博客记录个人通关教程,一起探索网络安全的奇妙世界吧! 🚀

零、Level 12 → Level 13

游戏直通车->🚗 🚕 🚙

在这里插入图片描述

一、关卡解读

密码在data.txt文件里,data.txt文件是一个被多次压缩的文件的hexdump。

二、通关教程

首先解释下题目的意思,假设有个文件A,现在将其多次压缩为B,将其执行hexdump命令,得到data.txt文件。

所以,我们需要先反向的执行hexdump命令,得到B文件,然后再反复解压,得到A文件,得到密码。

hexdump命令可以将文件内容以十六进制、十进制、八进制以及ASCII码形式展示:
hexdump一般用来查看“二进制”文件的十六进制编码,所以data.txt文件里面的内容是B文件的十六进制编码:
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链接。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/222121.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

飞轮储能一次调频并网三机九节点系统,虚拟惯性和下垂控制,也可加入虚拟同步机VSG控制,飞轮储能容量可调,系统频率50Hz,离散模型

5MW飞轮储能一次调频并网三机九节点系统,虚拟惯性和下垂控制,也可加入虚拟同步机VSG控制,飞轮储能容量可调,系统频率50Hz,离散模型,仿真运行速度快。 飞轮储能变流器采用双PWM环设计,并网电压电…

优先考虑静态成员类

在Java中,静态成员类(static nested class)是一种嵌套在另一个类中的类,且被声明为静态。静态成员类不依赖于外部类的实例,可以直接通过外部类的类名来访问。 优先考虑使用静态成员类的情况通常是当这个类与外部类的实…

ShenYu网关注册中心之HTTP注册原理

文章目录 1、客户端注册流程1.1、读取配置1.1.1、用于注册的 HttpClientRegisterRepository1.1.2、用于扫描构建 元数据 和 URI 的 SpringMvcClientEventListener 1.2、扫描注解,注册元数据和URI1.2.1、构建URI并写入Disruptor1.2.2、构建元数据并写入Disruptor1.2.…

【系统架构】集群、分布式概念及系统架构演进过程

集群、分布式概念: 对食物没有太高要求的人在肚子饿的时候一般都会选择去兰州拉面、沙县小吃等小饭馆,这类小饭馆有个很显著的特点:洗菜、切菜、炒菜都是同一个人完成,如果厨子不舒服可能饭馆还会歇业。而一些人流量较大的饭馆的分…

Axure的动态面板

目录 动态面板 什么是Auxre动态模板 动态模板的步骤 应用场景 实战案例 轮播图 多功能登录界面 主界面左侧菜单栏 动态面板 什么是Auxre动态模板 动态面板是Axure中的一个重要功能,它允许用户创建可交互的页面,并模拟用户与页面的交互。通过添加元素…

智能守护,数据安全稳中求胜!上海迅软DSE助力家具家电行业引领潮流!

随着中国经济的蓬勃发展,家具家电企业正迎来“精品制造”的时代,业内竞争日益激烈。为了提升产品竞争力、扩大市场占有率,企业亟需加强对自主品牌的安全建设,确保品牌的自主知识产权、产品生产资料以及销售信息等核心数据不受泄漏…

文本处理工具doctran(集成LLM和NLP库)

今天给大家推荐一款文本处理工具,可以Extract、Redact、Summarize、Refine、Translate、Interrogate,这个工具就是文档转换框架doctran。 欢迎关注公众号 doctran基于OpenAI的GPT模型和开源的NLP库来剖析文本数据。该工具也可以在LangChain框架document…

【MODBUS】Modbus是什么?

Modbus协议,从字面理解它包括Mod和Bus两部分,首先它是一种bus,即总线协议,和12C、SP|类似,总线就意味着有主机,有从机,这些设备在同一条总线上。 Modbus支持单主机,多个从机&#xf…

Python (八)网络编程

程序员的公众号:源1024,获取更多资料,无加密无套路! 最近整理了一份大厂面试资料《史上最全大厂面试题》,Springboot、微服务、算法、数据结构、Zookeeper、Mybatis、Dubbo、linux、Kafka、Elasticsearch、数据库等等 …

最新CRMEB商城源码开源版v5.2.2版本+前端uniapp

CRMEB开源商城系统是一款全开源可商用的系统,前后端分离开发,全部100%开源,在小程序、公众号、H5、APP、PC端都能用,使用方便,二开方便!安装使用也很简单!使用文档、接口文档、数据字典、二开文…

边缘检测@获取labelme标注的json黑白图掩码mask

import cv2 as cv import numpy as np import json import os from PIL import Imagedef convertPolygonToMask(jsonfilePath):

探秘闭包:隐藏在函数背后的小秘密(上)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

LeetCode1143.最长公共子序列

这道题看完就大概知道要用动态规划,然后想想如何建立动态转移方程,就很简单了,我都感觉我不是想出来的,是根据直觉应该是这样的然后边想边写就出来,以下是我的代码: class Solution {public int longestCom…

【Java】线程池的创建

目录 ​编辑 一、什么是线程池 二、创建和使用 导入必要的包: 创建线程池: 提交任务给线程池执行: 自定义Runnable和Callable任务: 关闭线程池: 我的其他博客 一、什么是线程池 在Java中,线程池是…

使用qrcode实现微信二维码转网址链接

很多情况下,后端会返回一个微信二维码的地址: 但是我们并无法直接打开或者是展示该二维码,毕竟浏览器不认识weixin://xxx ,只认识http://xxx 如果想要实现weixin://xxx 转化为http:// 的形式,可以使用第三方库&#x…

jmeter如何循环运行到csv文件最后一行后停止

1、首先在线程组中设置’循环次数‘–勾选永远 2、csv数据文件设置中设置: 遇到文件结束符再次循环?——改为:False 遇到文件结束符停止线程?——改为:True 3、再次运行就会根据文档的行数运行数据 (如果需要在循环控制器中&…

回答一个同学的问题:在目前深度学习爆火的年代,专家系统还有用吗,会被淘汰吗?

文章目录 我的看法如下:(不会被淘汰,会逐渐进化)总结 我的看法如下:(不会被淘汰,会逐渐进化) 专家系统和深度学习有其各自的优势。专家系统利用规则和知识库来给出结论,适用于问题范…

深度解析:探索「两数之和」问题的多种算法解决方案

今天要讨论的是「两数之和」问题,并将从哈希表解法到排序数组与双指针法、再到一遍哈希表解法的不同解决方案进行详细探讨 哈希表解法: 第一,使用了一种简单而有效的方法——哈希表。我们创建了一个 HashMap,用于存储已遍历过的元…

Android : SensorManager 传感器入门 简单应用

功能介绍&#xff1a;转动手机 图片跟着旋转 界面&#xff1a; activity_main.xml <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android"http://schemas.android.com/apk/res/andr…

C4D云渲染怎么提升速度小技巧?C4D云渲染速度提升技巧

当许多C4D用户转向云渲染时&#xff0c;他们常常会发现渲染速度并没有预期中的提升&#xff0c;这让人产生疑问&#xff0c;为什么使用云渲染服务后&#xff0c;渲染时间依然没有显著缩短&#xff0c;C4D云渲染情况取决于多个因素&#xff0c;如&#xff1a;渲染任务特点以及所…