神奇的二维码,能做什么特别的事情?

摘要:题解 给了一张二维码 扫出来提示说flag不在这里 用binwalk分析,发现还有四个rar文件 用foremost不知道为啥分离不出来,这里直接用binwalk分离 binwalk.exe -e .BitcoinPay.png 得到四个
题解 给了一张二维码 扫出来提示说flag不在这里 用binwalk分析,发现还有四个rar文件 用foremost不知道为啥分离不出来,这里直接用binwalk分离 binwalk.exe -e .\BitcoinPay.png 得到四个压缩包 第一个压缩包里面套了一个加密压缩包(第一个没用,假的,骗人的) 第二个压缩包,是base64字符 解密,得到pass1(这个是第一个压缩包套娃里面加密图片的密码) asdfghjkl1234567890 第三个压缩包,关键字flag 里面是一长串的base64,有两页多(嵌套加密了) 用脚本解密(用的别人现成的) 得到pass2,(解密第四个压缩包) comEON_YOuAreSOSoS0great 第四个压缩包,解密之后是一段音频,听音频是摩斯密码, 懒得一个一个写,找个在线摩斯密码音频解密 得到解密字符 M O R S E I S V E R Y V E R Y E A S Y 懒得去空格和一个一个改(提交flag需要小写的,有博主帮我避坑了),用脚本改 得到最终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)