总结

ISCC2022比赛结束了,对我这个新手的ctfer来说,确实有点不太友好,但是也学到了很多东西,png jpg隐写啊乱七八糟的,下面是misc的解题思路以及过程

少量题目会提供解题过程中遇到的坑和如何绕过坑的过程。

单板小将苏翊鸣 难度:★

单板小将苏翊鸣

工具:010Editor

首先打开文件得到一张图片,把图片放到010editor中,使用png.bt跑一下。发现crc值错误,推测可能是修改了高度,于是修改一下十六进制更改一下图片的高度

得到一张二维码

扫描二维码得到一串编码

\u5728\u8fd9\u6b21\u51ac\u5965\u4f1a\u7684\u821e\u53f0\u4e0a\uff0c\u6211\u56fd\u5c0f\u5c06\u82cf\u7fca\u9e23\u65a9\u83b7\u4e00\u91d1\u4e00\u94f6\uff0c\u90a3\u4f60\u77e5\u9053\u6b64\u6b21\u51ac\u5965\u4f1a\u6211\u56fd\u603b\u5171\u83b7\u5f97\u51e0\u679a\u5956\u724c\u5417\uff1f\u53c8\u5206\u522b\u662f\u51e0\u91d1\u51e0\u94f6\u51e0\u94dc\u5462\uff1f

应该是Unicode编码

解码得到:

在这次冬奥会的舞台上,我国小将苏翊鸣斩获一金一银,那你知道此次冬奥会我国总共获得几枚奖牌吗?又分别是几金几银几铜呢?

根据题意

15942 即是解压密码

打开flag.rar得到flag

ISCC{beij-dbxj-2007}

解题收获:本题考查高度修改,Unicode编码转换。

降维打击 难度:★★

降维打击

使用binwalk分析一下文件,发现存在另一张png图片

使用foremost misc-DimensionalityReductionStrike-42.png -o file 命令

分解文件 得到一张500000.png的图片

使用命令zsteg 500000.png -a查看全部隐写情况,发现存在另一张隐藏的图片

然后使用命令zsteg -E "b1,r,lsb,yx" 00000567.png > flag.png

把这张隐藏的照片分解出来得到了一张表

对照

得到divewspsvnzc 按照题意flag的形式,并大写解得flag

ISCC{DIVE-WSPS-VNZC}

解题收获:本题考查了png隐写,对其有了一个新的认知。

藏在星空中的诗 难度:★★

藏在星空中的诗

工具:Photoshop

使用Photoshop打开Stars.psd文件把第一个图层的不透明度更改为100%得到一张五角星的照片

按照13524的顺序把Poem.txt中的诗进行排序组合即是解压密码

根据key_to_the_Poem.xlsx表中的字符 按照1,2,3,4,5的顺序依次找到对应的英文字母最终得到

FLAG=ISCC{GPMBIEZBDSTILO}

解题收获:本题考查了ps用法,考验了我的观察能力、

真相只有一个 难度:★★★★

真相只有一个

题目描述

misc是英文miscellaneous的前四个字母,表示有杂项、混合体、大杂烩的意思,题目思路广,模式不定,线索众多,在这些线索中有的有用有的没用,最终的真相只有一个。

工具:010editor、 Stegsolve、 Passper for Zip、Wireshark、NetworkMiner、Audacity、snow.exe隐写工具

首先解压压缩包

得到三个文件

entity.png flag.txt stream

enetiy.png

首先把entity文件放到010editor跑一下模板

发现CRC值错误,修改一下高度 得到了一串摩斯密码

解密发现这不是flag

![]()

flag.txt

用notepad++打开flag.txt发现有很多空格,我们用010editor打开

但目前没看出来什么

stream

还有一个stream未知后缀的文件,我们放到kali中分析一下

什么也没发现,放到010editor上查看一下打开之后,我们发现有个数据包文件

stream.pcapng

这个时候拉到最下面 发现有PK

且有目录结束标志

推测这是个zip文件,但是没有找到文件头标识

有可能是ctf中修改文件头类型的题目

发现00 00 03 04 改成50 4B 03 04 然后得到stream.pcapng 这个文件

然后把图片entiy.png 使用stegsolve工具进行RGB通道分离,有一串ascii码显示passwd

1998/xx/xx$

使用压缩包破解工具(Passper for Zip)进行掩码破解,推测密码是日期的形式,不包含特殊符号,包含的密码内容是1998

解压得到stream.pacpng文件 然后放到wireshark中分析

发现udp传输协议中占有很文件数据部分的Data

右键过滤一下

69端口,专门去查了一下,是tftp的传输端口,说明数据包中有一个叫password.mp3的文件

另存为misc4.pcap文件

然后用NetworkMiner分离一下文件得到password.mp3

放到Audacity中查看一下波形图

把声音拉到最后 发现滴滴的声音,推测可能是摩斯密码

../.../-.-./-.-./--/../.../-.-.

解密得到ISCCMISC

联想到最开始的flag文件,里面有很多空格,推测可能是snow隐写

ISCC可能是key

使用 snow.exe隐写工具

命令snow.exe -C -p key 文件

发现不对,ISCC转小写试试

得到flag

PS:

snow 是一款在html嵌入隐写信息的软件,它的原理是通过在文本文件的末尾嵌入空格和制表位的方式嵌入隐藏信息,不同空格与制表位的组合代表不同的嵌入信息。

参考文章:

https://blog.csdn.net/weixin_48350401/article/details/111058413

隐秘的信息 难度:★★★★

工具:base64在线工具、stegsolve、CyberChef

拿到题目后使用base64解码得到压缩包密码easy_to_find_the_flag

得到png图片后,使用stegsolve查看lsb最低有效位隐写

导出前三行的十六进制,使用CyberChef进行转换

Ascii码转二进制

删掉二进制开头多余的1

得到flag:ISCC{NA984UGW7wrD71qcQpFR}

解题收获:本题很考察我的观察力,这个二进制编码的修改对一个人的观察能力要求很高。

藏在星空中的诗-2 难度:★★★★

工具:CaptfEncoderV2

打开得到txt文件,发现txt中符号有点像unicode编码的形式,将其前三个符号转换成U00,对照藏在星空中的诗-1中的excle表格,取Unicode编码的最后一位,替换一下得到以下编码

\u0049\u0053\u0043\u0043\u007B\u0039\u0051\u0045\u0079\u0065\u0076\u0037\u0052\u0052\u0076\u0021\u0061\u0036\u0075\u007D

转码得到flag

Flag: ISCC{9QEyev7RRv!a6u}

解题收获:藏在星空中的诗有联系,考查了Unicode最后一位,很新的题型。

2022冬奥会 难度:★

工具:stegsolve Unicode转码工具

解压压缩包得到题图,放到010editor中,运行png模板发现crc效检值错误,修改高度查看

得到一串Unicode编码

转码后,原型是:灯笼,即是压缩包密码解压得到flag.jpg,放到010editor中得到flag

Flag: ISCC{beij-dahb-1031}

解题收获:本题稍微绕了一个小弯,不过很容易就可以绕过。

666 难度:★★★

666

工具:Steghide、010editor

打开图片,放到steghide中,查看到有隐写信息,需要输入密码才能看到

使用python脚本破解一下jpg密码,脚本如下。

from subprocess import *
def foo():
    stegoFile = '/home/kali/Desktop/output/src_sec.jpg'  # 隐写的图片
    extractFile = '/home/kali/Desktop/output/pwd.txt'  # 爆破的密码
    passFile = '/home/kali/Desktop/output/password.txt'  # 字典
    errors = ['could not extract', 'steghide --help', 'Syntax error']
    cmdFormat = 'steghide extract -sf "%s" -xf "%s" -p "%s"'
    f = open(passFile, 'r')
    for line in f.readlines():
        cmd = cmdFormat % (stegoFile, extractFile, line.strip())
        p = Popen(cmd, shell=True, stdout=PIPE, stderr=STDOUT)
        content = str(p.stdout.read(), 'gbk')
        for err in errors:
            if err in content:
                break
        else:
            print(content),
            print('the passphrase is %s' % (line.strip()))
            f.close()
            return
if __name__ == '__main__':
    foo()
    print('ok')
    pass

破解得到密码为123456输入密码发现图片中隐藏了一个图片

分离一下

命令:steghide extract -sf /home/kali/Desktop/output/src_sec.jpg

得到一张图片,放到010editor中跑一下png.bt,发现crc值错误,修改高度得到解压密码:!@#$%678()_+

解压得到stream.pacpng

放到wireshark中协议分级,发现存在text数据,过滤追踪一下,发现存在666.txt文件

然后另存为123.pcap文件,放进NetworkMiner中分离666.txt

打开666.txt得到一个网址,访问网址得到gif图片,使用stegsolve工具分帧浏览得到三串字符

SElERWtleTo4NTIg0Tg3NDU2MzIxIDk4NDIZIDk4NDIzIFJFQUxtZXk6eFn4eA=

base64解码得到

推测是键盘密码,对应小数键的位置

852=“I”,87456321=“S”,9842=“C”,98423=“C”

解出:ISCC

将剩下的两串编码组合得到

pQLKpP/EPmw301eZRzuYvQ==

推测是Aes加密,ISCC即是key,这里填充选择Zore填充

解密得到flag:ISCC{lbwmeiyoukaig}

解题收获:本题考查了键盘密码,和aes加密,加深了我对这种题型的印象。

最后修改:2022 年 06 月 28 日
如果觉得我的文章对你有用,请随意赞赏