题目附件密码:4416
该题一共两个文件

首先补全二维码后扫码得到的内容进行base64解码得到

这里需要用到一个工具
https://github.com/livz/cloacked-pixel
GitHub下载慢的话可以直接点击这里:cloacked-pixel-master
这个工具是用python2写的,在Linux系统下首先进行python2的配置:
wget https://bootstrap.pypa.io/pip/2.7/get-pip.py
python2 get-pip.py
/usr/bin/python2 -m pip install --upgrade pip
然后安装工具所需的python第三方库
pip2 install matplotlib
pip2 install Pillow
pip2 install crypto
pip2 install pycryptodome
以及系统依赖文件
apt-get install python-tk
最后使用工具:
python2 lsb.py extract 1.png flag.txt Lsb_1s_gr3at
最后解出flag

这道题涉及到一个知识点就是LSB隐写,关于LSB隐写我在下面简单说一说
LSB全称leastsignificant bit,是一种基于图片最低有效位修改储存信息的隐写方法,为什么会有这种隐写方法的产生?
其实很简单,我们都知道三原色,即:红绿蓝。就是大多数的颜色都可以通过三原色的不同比例调剂出来。
一般来说图片有BMP、JPG、BNG等格式,BMP、PNG是无损压缩的图片,而JPG是有损压缩的图片,所以一般使用PNG或BMP进行信息隐藏。一般BMP是没有压缩过的图片,所以会比较大。
如果图像是jpg图片的话,就没法使用lsb隐写了,原因是jpg图片对像数进行了有损压缩,我们修改的信息就可能会在压缩的过程中被破坏。
图片的图像像素一般都是由RGB三原色(红绿蓝)组成,每一种颜色占8位,取值为0x000xFF(十进制0255),(以0x开始的数据表示16进制)就是256种,一共包含了256的3次方种颜色,即16777216种颜色
但是人类的眼睛只可以分辨大概1000万种不同的颜色,还有很多种细微的变化人类的眼睛是觉察不到的

而LSB隐写就是通过修改RGB颜色分量的最低位二进制(LSB),来进行信息的储存,人类的眼睛并不能感知到前后的变化
,每个像素可以携带3bit的信息

上图我们可以看到,十进制的235表示的是绿色,我们修改了在二进制中的最低位,但是颜色看起来依旧没有变化。我们就可以修改最低位中的信息,实现信息的隐写。我修改最低有效位的信息的算法就叫做lsb加密算法,提取最低有效位信息的算法叫做lsb解密算法。