[青少年CTF]misc-Simpleness writeup by q1jun

0x01 题目

附件:simpleness .zip

0x02 解题

这题包含的知识点比较多,写wp真是累死我了,看过的师傅在下面留下点评论呗

0x0201 弱口令爆破

解压了simpleness.zip,发现一共有三个文件:

  • flag.zip
  • hint.zip
  • key.zip

放到kali里面使用john进行爆破:

[青少年CTF]misc-Simpleness writeup by q1jun_第1张图片

hint.zip的解压密码为: 123456

其他两个包跑了一好一会儿没跑出来,那就先分析hint.zip里面的文件。

0x0202 RAR伪加密

hint.zip里面解出两个文件:

  • hint.png
  • hint.rar

这个hint.rar是伪加密,随便打开一个十六进制的编辑器:

[青少年CTF]misc-Simpleness writeup by q1jun_第2张图片

找到第24个字节,这里的0x24表示已加密,改成0x20表示未加密,改完:

[青少年CTF]misc-Simpleness writeup by q1jun_第3张图片

保存之后,成功解压hint.rar,得到一个hint.txt:

[青少年CTF]misc-Simpleness writeup by q1jun_第4张图片

这里得到

提示1:key.zip的密码范围是qsnctf大小写,且此密码可多次使用

提示2:要用到SilentEye0.3.1这个工具(之前做的时候没有这个提示,卡了好久

0x0203 图片隐写

再看第二个文件:hint.png

[青少年CTF]misc-Simpleness writeup by q1jun_第5张图片

是一张平平无奇的png图片,但是丢到foremost看一下发现里面藏了个zip

Foremost version 1.5.7 by Jesse Kornblum, Kris Kendall, and Nick Mikus
Audit File

Foremost started at Fri Oct  7 22:33:18 2022
Invocation: foremost -i hint.png 
Output directory: /root/q1jun/markdown/simpleness/hint/output
Configuration file: /etc/foremost.conf
------------------------------------------------------------------
File: hint.png
Start: Fri Oct  7 22:33:18 2022
Length: 82 KB (84884 bytes)
 
Num	 Name (bs=512)	       Size	 File Offset	 Comment 

0:	00000162.zip 	       1 KB 	      83284 	 
1:	00000000.png 	      81 KB 	          0 	  (371 x 225)
Finish: Fri Oct  7 22:33:18 2022

2 FILES EXTRACTED
	
zip:= 1
png:= 1
------------------------------------------------------------------

Foremost finished at Fri Oct  7 22:33:18 2022
foremost -i hint.png

提取出zip文件,解压发现没有密码,得到一张二维码:

[青少年CTF]misc-Simpleness writeup by q1jun_第6张图片

使用工具扫码得到另一个hint:

[青少年CTF]misc-Simpleness writeup by q1jun_第7张图片

提示3:最后一个压缩包是中文

0x0204 python生成字典爆破

通过提示1,我们可以知道key.zip的密码是qsnctf的大小写组合,通过写python脚本生成一个字典:

┌──(root㉿localhost)-[~/q1jun/markdown/simpleness]
└─# cat wordlist.txt 
qsnctf
qsnctF
qsncTf
qsncTF
qsnCtf
qsnCtF
qsnCTf
qsnCTF
qsNctf
qsNctF
qsNcTf
qsNcTF
qsNCtf
qsNCtF
qsNCTf
qsNCTF
qSnctf
qSnctF
qSncTf
qSncTF
qSnCtf
qSnCtF
qSnCTf
qSnCTF
qSNctf
qSNctF
qSNcTf
qSNcTF
qSNCtf
qSNCtF
qSNCTf
qSNCTF
Qsnctf
QsnctF
QsncTf
QsncTF
QsnCtf
QsnCtF
QsnCTf
QsnCTF
QsNctf
QsNctF
QsNcTf
QsNcTF
QsNCtf
QsNCtF
QsNCTf
QsNCTF
QSnctf
QSnctF
QSncTf
QSncTF
QSnCtf
QSnCtF
QSnCTf
QSnCTF
QSNctf
QSNctF
QSNcTf
QSNcTF
QSNCtf
QSNCtF
QSNCTf
QSNCTF

python脚本如下:

S = 'qsnctf'
word = ''
ans = [S]
word = ''
for i in range(len(S)):
    s = S[i]
    if s.isalpha():
        new = []
        for a in ans:
            new.append(a[:i] + s.lower() + a[i + 1:])
            new.append(a[:i] + s.upper() + a[i + 1:])
        ans = new
for a in ans:
    word += ''.join(a)
    word += ''.join('\n')
with open('wordlist.txt','w') as f:
    f.write(word)
    f.close

使用zip2john生成压缩包的hash:

zip2john key.zip >> key.txt

使用john根据上面生成的字典wordlist.txt进行爆破:

john key.txt --wordlist=wordlist.txt

立马得到压缩包key.zip的密码:QsNcTf

解压得到一个bmp文件:

[青少年CTF]misc-Simpleness writeup by q1jun_第8张图片

0x0205 LSB+AES隐写

看到bmp格式的图片,第一个想到这是LSB隐写,但是当我分析完了R- G- B低位隐写的所有数据之后并没有发现什么有用的东西。

想到前面的提示2:是用SilentEye0.3.1这个工具进行隐写的,用这个工具进行decode:

[青少年CTF]misc-Simpleness writeup by q1jun_第9张图片

还是不行。

想到前面的提示1说到QsNcTf这个密码可以多次使用,勾选Encrypted data使用AES128进行解密:

[青少年CTF]misc-Simpleness writeup by q1jun_第10张图片

发现图片里面隐藏了一个1.txt文件,提取出来:

[青少年CTF]misc-Simpleness writeup by q1jun_第11张图片

0x0206 零宽隐写

发现直接看并没有什么有用的信息,用Sublime text打开之后发现:

[青少年CTF]misc-Simpleness writeup by q1jun_第12张图片

发现是个零宽隐写。

[青少年CTF]misc-Simpleness writeup by q1jun_第13张图片

这里有个坑,这个网站并不能正确的现实里面隐藏的内容,

换了个网站:Zero Width Lib (yuanfux.github.io)

发现了里面隐藏的内容:

[青少年CTF]misc-Simpleness writeup by q1jun_第14张图片

这里得到了flag.zip的密码,但是试了半天Hello World,发现并不能解开压缩包

最后发现密码是这一整句话。。

The password is Hello World

0x0207 SNOW-无字天书

解压flag.zip之后,以为马上拿到了flag准备提交,结果发现又给了两个文件(我快崩溃了

  • flag.zip
  • key.txt

[青少年CTF]misc-Simpleness writeup by q1jun_第15张图片

打开key.txt后,发现什么也没有

[青少年CTF]misc-Simpleness writeup by q1jun_第16张图片

想到可能是SNOW的无字天书隐写,因为里面有很多空白制表符,但是没有任何内容。

通过SNOW.exe工具解出一串数字:

image-20221007230722671

0x0208 中文电码解码

得到一串数字:

66382508137843160834

想到提示3: 最后一个压缩包的密码是中文 ,想到这可能是中文电码(因为要让它变成汉字

打开中文电码查询网站:中文电码查询 Chinese Commercial Code

[青少年CTF]misc-Simpleness writeup by q1jun_第17张图片

得到最后一个压缩包的密码:

这是密码吗

解开最后一个flag.zip之后发现…又是一张图片flag.jpg

0x0209 JPG文件修复

发现flag.jpg并不能打开,丢到十六进制编辑器里面:

在文件末尾,看到这些乱码是文件被逆序,而且奇偶互换了

通过python写一个脚本进行修复,脚本如下:

s = open("flag.jpg","rb").read()
a = open("flag1.jpg","wb")
for i in range(0 ,len(s), 4):#4位奇偶互换
    s1 = s[i:i+4][::-1]
    a.write(s1)
s = open("flag1.jpg","rb").read()[::-1] #逆序
a = open("flag2.jpg","wb")
a.write(s)

得到flag2.jpg可以正常打开:

[青少年CTF]misc-Simpleness writeup by q1jun_第18张图片

0x0210 图片宽高隐写

得到flag2.jpg之后还不能得到flag,分析flag2.jpg也并没有发现里面藏了其他文件。

想到可能是修改了高度,丢进010Editer:

[青少年CTF]misc-Simpleness writeup by q1jun_第19张图片

找到高度 WORD Y_image,把它改高一点,我这里改成600

[青少年CTF]misc-Simpleness writeup by q1jun_第20张图片

保存后再打开图片,得到flag:

[青少年CTF]misc-Simpleness writeup by q1jun_第21张图片

制作writeup不易,师傅们留下点评论或点赞吧

你可能感兴趣的:(Web,php,nginx,服务器)