CTF show misc之旅 (wp详解一部分)

本文分享了解析CTF题目过程中遇到的各种密码破解、文件隐藏与隐写技术,包括base64、steganography、音符编码等,带你体验一场技术与乐趣的结合。

前言

首先感谢ctf show平台提供题目

其次感谢各位读者,对我的支持( •̀ ω •́ )y 有什么问题和建议可以私聊我

废话不多话开启你们的CTF之旅吧

希望你们在旅途中玩的开心,学的开心✌( •̀ ω •́ )y

目录

1.杂项签到

2.misc2

3.Miscx

4.misc50

5.misc30

6.stega1

7. misc3

8. misc40

9.misc30

10. 红包题第一弹

11.stega10

12.stega11

13.misc4

14. misc31

15.misc49

16.misc6

17.misc7

18.misc8

19.红包题第五弹

20.stega2

21.stega3

加油各位( •̀ ω •́ )y 期待与君再相逢



1.杂项签到

就让这个签到题来开启我们的CTF misc之旅吧

下载附件发现是个压缩包  但解压需要密码

但没有找到任何提示

所以有理由怀疑是伪密码

拖到010里发现确实是伪密码

经过修改

 解压得到flag

 flag{79ddfa61bda03defa7bfd8d702a656e4}  ( •̀ ω •́ )y


2.misc2

 下载附件得到应该无后缀的file文件

 根据提示

 知道是个软盘

所以直接新建虚拟机并载入软盘镜像

 

 

 运行直接得到flag

 flag{ctfshow}   ( •̀ ω •́ )y


3.Miscx

 

 下载附件里面 未加密的misc1.zip  加密的flag.txt  加密的hint.txt

还有 

附加文本:

2020快乐!
rat?or?

 后俩都需要密码所以先研究misc1.zip   

查看misc1压缩包 内含加密的music.doc文件跟一个png后缀的图片

 

 将图片拖进010里发现

 判断为误导信息

结合前面提示 猜想doc文件解压密码为2020

解压music.doc出来是音符编码

 提供在线网站https://www.qqxiuzi.cn/bianma/wenbenjiami.php?s=yinyuehttps://www.qqxiuzi.cn/bianma/wenbenjiami.php?s=yinyue

盲猜Base64 继续转码 结果不是

想起前面的附加文本提示 猜想是rabbit加密

 

 密钥是2020

得到welcome_to_payhelp

想到有俩加密的txt文档

以此为密码只解压出了hint.txt

 看见这种代码先base64 发现有效果 最后多次base64转码得到

 这一看就是url编码

成功得到密码

 hello 2020!

给flag.txt解压得到flag

 flag{g00d_f0r_y0u}  ( •̀ ω •́ )y


4.misc50

 下载附件里面只有一张图片

 废话不多说010拖一波 发现中间有一串代码

 Sk5DVlM2Mk1NRjVIU1gyTk1GWEgyQ1E9Cg==

Base64再来一波

 JNCVS62MMF5HSX2NMFXH2CQ=

然后base32

得到

KEY{Lazy_Man}

很明显了  肯定是哪个压缩包的解压密码或者那种隐写的密钥

所以图片foremost一下  得到一个压缩包 应证之前的猜想

 打开压缩包发现有提示

GEZDGNBVGYFA====

Base32来一下得到123456

是压缩包的密码

解压得到thienc.txt 里面是一大堆数字

仔细观察这一堆数字,发现3078重复出现 后面跟两个十六进制的字符

你如果用心去找发现3078 就是0x

所以思路就来了 删除0x 转化成压缩包格式

在这里就必须用到脚本了(python不好的朋友可要好好学习哦)

import re

def read_file(filepath):
    with open(filepath) as fp:
        content=fp.read();
    return content

number = read_file('1.txt')
result = []
result.append(re.findall(r'.{2}', number))
result = result[0]

strings =''
for i in result:
    y = bytearray.fromhex(i)
    z = str(y)
    z= re.findall("b'(.*?)'",z)[0]
    strings += z

b= strings.split('0x')

strings=''
for i in b:
    if len(i) ==1:
        i= '0' + i
    strings +=i

with open('test.txt', 'w') as f:
    f.write(strings)

得到一个压缩包

但需要密码,便想到之前解出的KEY{Lazy_Man}

解压出来是一个txt文本

在文本结尾发现==

废话不多说直接上base64

因为文本太长了所以只能用脚本

Base64脚本

import base64
import re
def read_file(filepath):
  
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路baby

你的鼓励将是我创作的最大动力✌

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值