从零开始做题:[MRCTF2020]不眠之夜-wp

题目信息

从观察题目发现有121张图片,其中1张是损坏的,需要先删除

从零开始做题:[MRCTF2020]不眠之夜-wp_第1张图片

查看发现每张图片的像素大小是200x100(长X高)

从零开始做题:[MRCTF2020]不眠之夜-wp_第2张图片

查看相关信息发现此题涉及到gaps和montage的联合使用

montage的作用是把乱序图片先按拼图的总大小拼成一张图

gaps的作用是将一张图按指定的size切割并尝试将其拼好

搭建虚拟机

使用VMware® Workstation 16 Pro、kali2023搭建了实验环境。不详细描述具体安装过程,在操作过程中遇到了几个问题,简要描述如下:kali2023安装完毕要修改root账号密码,要自动启动ssh服务,更换国内源。

kali2023安装完毕要修改root账号密码

第一步

sudo apt-get update

第二步

sudo apt-get  install kali-root-login

第三步

sudo passwd

自动启动ssh服务

新安装的kali是没有开启ssh服务的,需要进行手工配置。

1、打开配置文件,命令:vi /etc/ssh/sshd_config ;
2、执行命令后,使用快捷键:shift + 冒号,然后输入命令:set nu,出现行号,方便查找;
3、找到31——39行,然后输入 i(编辑) 下方会出现插入两字,就可以开始编辑内容了。
4、修改成下图的样子就行了。
从零开始做题:[MRCTF2020]不眠之夜-wp_第3张图片

开机自动启动ssh服务

update-rc.d ssh enable  //系统自动启动SSH服务
update-rc.d ssh disabled // 关闭系统自动启动SSH服务

使用service ssh status看到running表示正常运行着,然后就可以使用WinTerm去远程连接kali了。

从零开始做题:[MRCTF2020]不眠之夜-wp_第4张图片

从零开始做题:[MRCTF2020]不眠之夜-wp_第5张图片

更换国内源


1、编辑源配置文件,命令:vim /etc/apt/sources.list。

2、官方源
# deb http://http.kali.org/kali kali-rolling main non-free contrib
# deb-src http://http.kali.org/kali kali-rolling main non-free contrib

扩展:deb代表软件的位置,deb-src代表软件的源代码的位置;

linux下面的文件
.rpm  二进制包
.deb  二进制包
.tar.gz 源码包

3、国内源
#阿里云
deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib

从零开始做题:[MRCTF2020]不眠之夜-wp_第6张图片

安装图片拼接工具montage

sudo apt-get install graphicsmagick-imagemagick-compat #安装命令


 安装gaps

  首先我们需要下载gaps的源代码包文件;git clone https://github.com/nemanja-m/gaps.git #可以使用git下载到本地
 也可以直接访问后面的网址到github上下载源代码https://github.com/nemanja-m/gaps

解题操作过程

删完损坏照片后一共有120张图片

随意打开一张图片查看图片属性

我们可以看到每张图片都是200x100,200的宽和100的高

应该长:10张图片宽:12张图片,那么拼起来的总图就应该是长:2000 x 宽:1200

 把文件夹拖到kali下,到该文件夹的目录下打开终端使用命令

因为我们要拼的图就是120张,长有10张,宽有12张,所以是10x12

montage  -tile 10x12 -geometry 400x200+0+0 *jpg flag.jpg

 -geometry +0+0的用处是让图片之间没有间隙

tile后是从左往右张数x从上往下张数(宽的图片数x高的图片数)

*.jpg指目标为目录下所有的jpg格式图片

拼图碎片的大小越大,最后解出来的图片越精准。(但图片太大的话,gaps进程会被kill掉,所以合理的大就行了)

所以我们这里把原来的图片长度200,高度100,我们就统一放大2倍,所以-geometry 400x200
 

从零开始做题:[MRCTF2020]不眠之夜-wp_第7张图片

从零开始做题:[MRCTF2020]不眠之夜-wp_第8张图片

把拼接好的flag.jpg图片拖到gaps下的目录下打开终端执行命令

gaps run flag.jpg flag-flag.jpg --generations=40 --population=120 --size=100
 

 “–generations” 设置的参数多少都可以,最好就等于原始图片的数量,也就是piece的数量

“–size” 这个参数是最关键的,程序会根据这个选项设置的参数来判断piece的数量

size如何确定?

这道题的图片有一个特点,那就是宽是长的两倍,所以我们可以将一张子图片视为两张拼图(每张拼图是正方形的)

 于是有,拼图的宽度,也就是size为200/2=100

从零开始做题:[MRCTF2020]不眠之夜-wp_第9张图片

 得到flag



 

你可能感兴趣的:(Misc,杂项,linux,运维,服务器,网络安全,安全,系统安全)