首先公布一下答案:
攻防世界-Misc-适合做桌面
题目信息
-
名称: 适合作为桌面
-
编号: GFSJ0010
-
难度:1
-
题目来源:
世安杯
-
题目描述: flag格式为flag{xxxx}
-
题目附件:
题目分析
-
单纯从图片观察,未发现线索;
-
右键使用记事本打开,依然未发现
flag
字样;
图片隐写:在ctf比赛中,misc方向是必考的一个方向,其中,图片隐写也是最常见的题目类型
题解
第一步
-
启动
Stegsolve
,加载图片;
注意:
stegsolve需要依赖Java环境,自行配置,下载下了的文件为jar,目录下cmd的输入
java -jar jar文件名
切换图片->,<-键直接切换图片,在 red plane 1
中,可以看到,图片左上角出现了一个二维码。(图片隐写大概率可能还会涉及到数据提取,这道题比较基础,所以直接切换就可以看到)
第二步
这里识别二维码的三种方法:
-
识别该二维码,在线条码解析,记得选择二维码,然后 read 读取;
-
扫描结果是一串十六进制的数字;
2.微信直接扫描:
扫描出来也是一串十六进制的数字;
3、使用
拿到的也是十六进制数字
第三步
-
启动
winhex
进行解码,鼠标右键,选择编辑,选择转换文件,选择十六进制ASCLL->二进制,应为我们要写成pyc文件 -
pyc: pyc是一种二进制文件,是由Python文件经过编译后所生成的文件,它是一种byte code,Python文件变成pyc文件后,加载的速度有所提高,而且pyc还是一种跨平台的字节码因为py文件是可以直接看到源码的,但是一般情况下开发出来的商业软件都不可能直接把源码泄漏出去,这样我们就需要把它编译成pyc文件来保护源码。另外pyc文件也是可以反编译的,不同版本编译后的pyc文件是不一样的,这主要是根据Python源码中所提供的opcode来决定。
ctrl+a全选,鼠标右键选择编辑,选择复制选快,选择至新文件。
后缀改成pyc,变成pyc文件,就可以反编译了
第四步
接着使用 tool.lu 的在线 Pyc 解密工具:python反编译 - 在线工具 进行解密
也可以使用 uncompyle6 进行解密 pyc:
uncompyle6 <filename>.pyc > <filename>.py
反编译成功!
第五步
下载下来,进行细微的修改,输出flag!
成功输出flag!!!
知识点:
1、StegSolve
StegSolve是一款基于Java开发的流行图片隐写分析软件,其支持常见的图片文件格式,可以对不同的文件进行结合(包括XOR、ADD、SUB等操作),可以对图片文件格式进行分析,可以提取GIF文件中的帧等,覆盖了基本的图片隐写分析需求。
2、winhex是一款以通用的16进制编辑器为核心,专门用来对付计算机取证、数据恢复、低级数据处理、以及 IT 安全性、各种日常紧急情况的高级工具;使用winhex可以用来检查和修复各种文件、恢复删除文件、硬盘损坏、数码相机卡损坏造成的数据丢失等。
3、pyc: pyc是一种二进制文件,是由Python文件经过编译后所生成的文件,它是一种byte code,Python文件变成pyc文件后,加载的速度有所提高,而且pyc还是一种跨平台的字节码因为py文件是可以直接看到源码的,但是一般情况下开发出来的商业软件都不可能直接把源码泄漏出去,这样我们就需要把它编译成pyc文件来保护源码。另外pyc文件也是可以反编译的,不同版本编译后的pyc文件是不一样的,这主要是根据Python源码中所提供的opcode来决定。
4、在ctf比赛中,misc方向是必考的一个方向,其中,图片隐写也是最常见的题目类型
1.各种图片文件的头数据以及判断是什么类型的图片 2.png图片隐写 3.jpg图片隐写 4.gif图片隐写 5.bmp图片隐写 6.从图片中提取文件 7.lsb隐写 8.盲水印 9.exif隐写 10.图片宽高修改 ……