)
一.misc签到1.下载附件为一张加密的照片然后根据题目提示压缩包密码是五位字符所以我们直接爆破2.然后得到图片之后先把图片放到010里面查看了一下发现存在一长段的base643.然后直接再cyberchef里面base64转图片4.得到的是缺少定位符的二维码我们首先看是否有什么隐写之类的毕竟题目中还有提示没有用到用了一些方法没什么发现之后用zsteg提取到了前一半的flag5.然后补全二维码定位符扫描得到后半段flag然后根据题目的要求合成最后的flagctfshow{Your_potential_value_far_exceeds_your_belief}二.没大没小的串串1.根据题目的提示了正确的flag的md5,直接用脚本得到flagimport hashlib target 7513209051f455fa44d0fa5cd0f3e051 flag y0U_RE4lLy_kn0W_TH1S_ConGr4tUlAT10Ns # 找出所有字母位置只有字母可以改变大小写 letter_positions [i for i, c in enumerate(flag) if c.isalpha()] n len(letter_positions) print(f字母数量: {n}, 总组合数: 2^{n} {1 n}) # 用 bytearray 操作避免每次创建新字符串 base bytearray(flag.encode()) # 初始状态全部转为小写 for pos in letter_positions: base[pos] ord(chr(base[pos]).lower()) # Gray Code 暴力枚举每次只翻转一个字符效率最高 found False for i in range(1 n): if hashlib.md5(base).hexdigest() target: print(fFound: {base.decode()}) found True break # Gray Code: 第 i 步翻转的 bit 位 if i (1 n) - 1: changed_bit ((i 1) -(i 1)).bit_length() - 1 pos letter_positions[changed_bit] # 大小写翻转 if 97 base[pos] 122: base[pos] - 32 else: base[pos] 32 if not found: print(Not found)2.直接得到flagy0U_Re4llY_kN0w_TH1s_coNgr4TULat10nS