【CTF-MISC-压缩包】脚本实现批量提取压缩包数据
题目2024年春秋杯网络安全联赛冬季赛 - MISC - 压力大写个脚本吧https://www.ichunqiu.com/battalion?t1r78931解题思路打开文件发现一个压缩包一个txt文件txt里有一串密文RkdGR0ZHRkdGR0ZHRkdGR0ZHRkdGR0ZHRkdGR0ZHRkdGR0ZHRkdGR0ZHRkdGR0ZH对密文尝试解密没有可疑信息压缩包有密码用密文解密试一下并没有成功用刚才密文解密的FGFGFGFGFGFGFGFGFGFGFGFGFGFGFGFGFGFGFGFGFGFGFGFG作为密码解密成功反复用txt里的文件解密后解密压缩包都成功了所以这就是这道题的规律开始写脚本脚本参考大佬脚本原文链接https://blog.csdn.net/2303_76585504/article/details/145216675批量解压逐层解压所有压缩包的文件importzipfileimportosimportbase64 current_diros.getcwd()foriinrange(99,0,-1):password_fileos.path.join(current_dir,fpassword_{i}.txt)zip_fileos.path.join(current_dir,fzip_{i}.zip)withopen(password_file,r)asf:encoded_passwordf.read().strip()passwordbase64.b64decode(encoded_password).decode(utf-8)withzipfile.ZipFile(zip_file)aszf:zf.extractall(pathcurrent_dir,pwdpassword.encode(utf-8))合并密码把所有的txt密码文件合并成一个txt进行分析importosdefmerge_password_files(output_filemerged_passwords.txt,num_files100):withopen(output_file,w)asoutfile:foriinrange(num_files):file_namefpassword_{i}.txtifos.path.exists(file_name):withopen(file_name,r)asinfile:outfile.write(infile.read()\n)else:print(f{file_name}不存在)print(f合并完成路径{output_file})对密码进行分析初步分析先对第一行密文进行Magic发现应该是个PNG文件密文带入将merged_passwords.txt文件放入识别出来是个二维码扫码得到flag答案flag{_PASSWORDs%5Fis_flg!_}
