ctfshow MISC刷题记录2

ctfshow

misc50

解压附件,发现是一张图片
直接zsteg一把梭
在这里插入图片描述发现藏了个zip文件和一段base编码
foremost分离一下
打开zip文件,发现最里面一层有加密
在这里插入图片描述下面应该是解压密码
丢到cyberchef,得到密码
在这里插入图片描述

解压后发现是一串很长的字符串,并且3078一直在重复
3078对应的16进制刚好为0x
直接文本转十六进制,发现思路正确
在这里插入图片描述使用脚本,去掉0x

import re

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

number = read_file('thienc.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('result.txt', 'w') as f:
    f.write(strings)
    print("complete!")

运行脚本
在这里插入图片描述得到十六进制文本
打开010,导入十六进制文本
在这里插入图片描述

发现是7z压缩包文件头,修改后缀
打开发现还要密码
想起一把梭的时候还有个可疑字符串
猜测是密码
丢到cyberchef,先base64,再base32
在这里插入图片描述解压完
发现最后有"=="
一次解密中后还有“=”
考虑是多次base64+base32循环加密
借用脚本

import base64
import re
 
f = open('secenc.txt').read().encode('utf-8')
 
while True:
    if re.match('^[2-7A-Z=]+$', f.decode('utf-8')):
        f = base64.b32decode(f)
    elif re.match('^[0-9a-zA-Z+/=]+$', f.decode('utf-8')):
        f = base64.b64decode(f)
    else:
        print(f.decode('utf-8'))
        break
 
with open('result.txt', 'w', encoding='utf-8') as file:
    file.write(str(f,encoding='utf-8'))
print("Decryption complete!")

运行脚本
发现是ook编码
在线解密网站
在这里插入图片描述
解完发现是brainfuck编码
在这里插入图片描述

继续解码,得到flag
在这里插入图片描述

misc30

下载附件,发现是没有后缀的
010打开,一眼rar压缩包文件头
修改后缀,发现有两个是加密的,且不是伪加密
在这里插入图片描述
先解压星空.jpg
发现在属性的地方有提示密码
在这里插入图片描述
成功解压word文档
发现有不可见字符
在这里插入图片描述
直接复制到txt文本里
得到另一张图片密码
在这里插入图片描述
解压,发现是一张二维码
丢到QR里解析,得到flag
在这里插入图片描述

stega1

解压附件,发现是jpg图片
010打开没有得到线索,stegsolve也没看出来是lsb隐写
这里是jphs隐写
用jphs打开
在这里插入图片描述
再点击seek,空密码直接ok
在这里插入图片描述保存下来打开,得到flag
在这里插入图片描述

misc40

下载附件,发现zip里面只有一个是加密的
先看其他三个
打开txt文档,发现提示进制转换
在这里插入图片描述
可以直接二进制转十进制,得到一个密码
在这里插入图片描述

解压那个加密,发现不是
继续看其他文件
用QR解析二维码,发现不在
在这里插入图片描述
010打开,拖到最下面,一眼brainfuck编码
在线解码
在这里插入图片描述继续社会主义核心价值观解码
在这里插入图片描述得到密码,发现还解压不了
还有一个mp3文件没看
用MP3Stego看下,把文件拖到同一文件夹下,右键终端
命令

./Decode.exe -X -P 123456 svega.mp3

在这里插入图片描述得到线索
在这里插入图片描述
得到密码且提示用Silenteye
将解压完的wav文件用Silenteye打开
回想到最开始得到的密码
得到flag
在这里插入图片描述

misc30

下载附件,发现是伪加密,修改一下
得到mp3文件,Audacity打开看频谱图,没啥东西
拖到kali里binwalk一下,发现mp3文件藏了一张图片
foremost分离一下
在这里插入图片描述得到图片,很明显下面藏了什么东西
修改一下高度
在这里插入图片描述
一眼看出是猪圈密码
在线解码网站

得到flag
在这里插入图片描述

红包题第一弹

解压zip,发现有好多个zip在里面
先解压第一个,发现是张图片
010打开,发现最下面有字符串
在这里插入图片描述解码完,提示png(蒙蒙的)
在这里插入图片描述继续看其他照片,发现最后100个字节都有base64编码过的字符串
猜测是把全部图片的base64编码过后的字符串粘在一起
然后转成png图片
脚本提取下全部字符串

import zipfile
path1 = './'
path2 = './'
 
res = ''
for i in range(1, 87): #遍历每个zip文件
    zip = zipfile.ZipFile(path1 + str(i) + '.zip')  
    jpg = str(i) + '.jpg'
    zip.extract(jpg, path2)  #将zip中的文件解压到指定路径
    zip.close()
 
    f = open(path2 + jpg, 'rb').read()
    res += f[len(f)-100:len(f)+1].decode('utf-8')  #len(f)-100表示从倒数第100个字节开始截取数据,并且解码为utf-8编码的字符串
print(res)

运行脚本
在这里插入图片描述将字符串复制到在线解码网站
base64转图片

得到一张二维码
在这里插入图片描述QR解析一下得到flag
在这里插入图片描述

stega10

下载附件,得到一张图片
010打开发现可疑字符串
在这里插入图片描述
丢到cyberchef,得到一个网站
在这里插入图片描述
访问下载附件,发现是加密的
不是伪加密
看了看文件大小,都为1k,猜测CRC爆破
脚本

import zipfile
import string
import binascii
 
crc = []
zip = zipfile.ZipFile('./flag.zip', 'r')
for i in zip.namelist():
    crc += [zip.getinfo(i).CRC]
crc = crc[1:10]
 
for i in range(9):
    for j in string.printable:
        c = binascii.crc32(j.encode('utf-8'))
        if c == crc[i]:
            print(j, end = '')

得到密码

在这里插入图片描述解压那个压缩包
得到一张图片,但是打不开
010看一下,拖到最下面发现逆序了
在这里插入图片描述直接上脚本

f = open('./n.png', 'rb').read()
res = open('./n2.png', 'wb')
res.write(f[::-1])

得到一张二维码
QR解析一下得到flag
在这里插入图片描述

stega11

解压完得到一张图片
010打开大概找了一下没找到
打开kali,strings一下
命令

strings flag.jpg

找到可疑字符串
在这里插入图片描述直接base32解码
得到flag
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

_rev1ve

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

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

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

打赏作者

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

抵扣说明:

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

余额充值