神奇的二维码

image-20231220211451221

题解

给了一张二维码

image-20231220211533233

扫出来提示说flag不在这里

用binwalk分析,发现还有四个rar文件

image-20231220211657888

用foremost不知道为啥分离不出来,这里直接用binwalk分离

binwalk.exe -e .\BitcoinPay.png

得到四个压缩包

image-20231220211846355

第一个压缩包里面套了一个加密压缩包(第一个没用,假的,骗人的)

image-20231220211946730

第二个压缩包,是base64字符

image-20231220212028062

解密,得到pass1(这个是第一个压缩包套娃里面加密图片的密码)

asdfghjkl1234567890

第三个压缩包,关键字flag 里面是一长串的base64,有两页多(嵌套加密了)

image-20231220212225924

用脚本解密(用的别人现成的)

image-20231220212737632

得到pass2,(解密第四个压缩包)

comEON_YOuAreSOSoS0great

第四个压缩包,解密之后是一段音频,听音频是摩斯密码,

image-20231220212908399

懒得一个一个写,找个在线摩斯密码音频解密

image-20231220213252377

得到解密字符

M O R S E I S V E R Y V E R Y E A S Y

懒得去空格和一个一个改(提交flag需要小写的,有博主帮我避坑了),用脚本改

image-20231220213620933

得到最终flag


flag

flag{morseisveryveryeasy}

参考

https://blog.csdn.net/mochu7777777/article/details/108921379


嵌套解密base64

import base64
import argparse   #接收参数模块

# 创建 ArgumentParser 对象
parser = argparse.ArgumentParser(description='嵌套解密base64')
# 添加需要接收的参数
parser.add_argument('-f', type=str, help='文件名')
# 解析命令行参数
args = parser.parse_args()

def decode(f):
	n = 0;
	while True:
		try:
			f = base64.b64decode(f)
			n += 1
		except:
			print('[+]Base64共decode了{0}次,最终解码结果如下:'.format(n))
			print(str(f,'utf-8'))
			break

if __name__ == '__main__':
	f = open(f"{args.f}",'r').read()
	decode(f)

转小写_去空格

import sys

# 从命令行参数中获取输入字符串
input_string = ' '.join(sys.argv[1:])

# 去除字符串中间的空格
output_string1 = input_string.replace(" ", "")

# 将字符串中的大写字母转换为小写字母
output_string = output_string1.lower()


# 输出转换后的字符串
print(output_string)

posted @   糕冷のkecy  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示