BUUCTF 2023.1.28

目录

第一题 伟大的侦探

第二题 zip

第三题 girlfriend

第四题 alison_likes_jojo

​编辑

第五题 zips

 第六题 (╯°□°)╯︵ ┻━┻

 第七题 爬


第一题 伟大的侦探

打开压缩文件,有一个文件夹和一个文本,文本里面有对密码的提示

看物品得知是EBCDIC编码,用010打开 

得到密码 

输入密码打开图片后发现是是一些小人,摆着不同的姿势,结合题目伟大的侦探,想到福尔摩斯,在网上查一下,找到对应的图片,对照进行翻译 

得到flag{iloveholmesandwllm}

第二题 zip

题目有提示,将得到的信息拼在一起

解压压缩包,打开文件,发现有很多,每一个里面都是一个带密码的文本文件

用末初的脚本,得到所有文件内容拼起来的base64编码 

解密发现rar文件的文件尾 

 用010打开文本文件,添加文件头52 61 72 21 1A 07 00

得到压缩文件,打开后看注释得到flag{nev3r_enc0de_t00_sm4ll_fil3_w1th_zip}

脚本

​
#python3
import zipfile
import string
import binascii
 
def CrackCrc(crc):
	for i in dic:
		for j in dic:
			for k in dic:
				for h in dic:
					s = i + j + k + h
					if crc == (binascii.crc32(s.encode())):
						f.write(s)
						return
 
def CrackZip():
	for i in range(0,68):
		file = 'out'+str(i)+'.zip'
		crc = zipfile.ZipFile(file,'r').getinfo('data.txt').CRC
		CrackCrc(crc)
		print('\r'+"loading:{:%}".format(float((i+1)/68)),end='')
 
dic = string.ascii_letters + string.digits + '+/='
f = open('out.txt','w')
print("\nCRC32begin")
CrackZip()
print("CRC32finished")
f.close()
 

​

第三题 girlfriend

打开文件发现是一个音频文件,用Audacity打开,开始觉得是摩斯密码,但是听音频的时候不太像,感觉像是那种手机号码的按键声

 看wp之后发现确实是,用dtmf2num

 得到一串数字后,想着和九键应该有联系,因为以前手机是按键的那种九键,数字表示按键位置,几个数字表示第几位

翻译得到youaremygirlfriends,即为flag

第四题 alison_likes_jojo

解压文件得到

binwalk一下第一张图片,发现里面有一个压缩包,分离出来

 

压缩包里面的文本文件需要密码打开,进行暴力破解,得到密码 

 

打开发现是一段编码,用base64解码

 

并没有直接出现答案,反复解码,得到killerqueen,这时候想到昨天有一题也是两张图片,然后第一张图片里得到的信息是第二张图片的密码

 

即为outguess隐写 ,得到1.txt 

得到flag {pretty_girl_alison_likes_jojo}

 

第五题 zips

打开111.zip文件需要密码,暴力破解密码723456

 打开得到一个压缩包文件,一个文本文件,文本文件打不开,用WinHex打开111.zip,发现zip伪加密,改为偶数之后保存

文本文件打开,是一段python代码,运行一下

 

 结果是数值接近的数字,了解到是掩码爆破,得到密码,打开文件得到flag

 

 第六题 (╯°□°)╯︵ ┻━┻

打开文件是连在一起的十六进制数值

用网上获得的脚本运行直接得到flag

脚本

# -*- coding:utf-8 -*-
import re
import urllib

list1 = []
list2 = []

s = "d4e8e1f4a0f7e1f3a0e6e1f3f4a1a0d4e8e5a0e6ece1e7a0e9f3baa0c4c4c3d4c6fbb9b2b2e1e2b9b9b7b4e1b4b7e3e4b3b2b2e3e6b4b3e2b5b0b6b1b0e6e1e5e1b5fd"

print
len(s)
result = re.sub(r"(?<=\w)(?=(?:\w\w)+$)", " ", s)
print
result
urlencode_s = "%" + result.replace(" ", "%")
print
urlencode_s
hex_s = "0x" + result.replace(" ", "0x")
print
hex_s
print
hex_s[-4:8]
list_hex = []

for i in range(len(hex_s)):
    if ((i + 1) % 4 == 0):
        print
        hex_s[(i - 3):(i + 1)]
        list1.append(hex_s[(i - 3):(i + 1)])
        print
        i
    else:
        print
        i
        continue
print
list1

for i in list1:
    list2.append(int(i, 16))

print
list2

print
253 - 125
list3 = []
print
len(list2)
for i in range(67):
    list3.append(chr(int(list2[i]) - 128))
s = "".join(list3)
print (s)

 第七题 爬

打开文件后啥也没出现,放到kali里面binwalk一下,发现里面还有一个PDF和jpg

用PDF打开文件,看到下面提示说flag被图片盖住了,跟binwalk显示的结果相同

删掉上面的图片,得到一串16进制编码 

在线转化得到flag 

 

 总结:学习到掩码解密,outguess解密,根据题目和图片联想到的福尔摩斯小人跳舞图片的解密形式,音频不一定是福尔摩斯密码,可能是另一种形式(想法不能局限),积累脚本,解决图片叠在一起的问题

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值