
加密流程分析题目给出了一个加密后的密文加密过程如下使用3字符密钥k0对flag进行AES-CBC加密得到中间密文c0使用同样长度的密钥k1对c0连续加密三次得到最终密文c3两个密钥均通过sha256从3字符明文生成textflag --[AES-CBC(k0)]-- c0 --[AES-CBC(k1)×3]-- c3解题步骤第一步爆破k1对c3做三次AES-CBC解密每次解密后进行PKCS7补位校验。当三次解密都成功且补位合法时说明k1正确解密结果为c0。第二步爆破k0对c0做一次AES-CBC解密并校验PKCS7补位验证解密结果是否符合flag的UUID格式。找到匹配的k0即可得到最终flag。优化方案利用多进程/批量处理加速暴力搜索使用PKCS7补位校验 UUID格式校验作为快速剪枝条件解题脚本框架pythonfrom Crypto.Cipher import AES import hashlib from multiprocessing import Pool def derive_key(plain_3chars): return hashlib.sha256(plain_3chars.encode()).digest() def try_decrypt_k1(c3, k1_candidate): # 连续3次AES-CBC解密每次校验PKCS7 # 全部成功则返回c0 pass def try_decrypt_k0(c0, k0_candidate): # 一次AES-CBC解密校验PKCS7且结果符合UUID格式 pass