「Bugku CTF」7+1+0
题意
7+1+0?格式 bugku{xxxxx}。
4nXna/V7t2LpdLI44mn0fQ==
分析
看到末尾有 ==
,第一反应就是 base64,但使用 Bugku CTF 自带的 base64 解密工具发现 Server Error,猜想到这串 base64 码被动过手脚。这里有一个小插曲,我使用「鲁棒性较强的 base64 解密网站」,发现偶数位得到了正确的 flag,但奇数位是乱码。
结合标题 7+1+0,很可能是奇数位上的字符发生了位翻转。调用 python 的 base64 库,输出 ASCII 码,发现奇数位都 \(\ge 128\)。这样就串起来了,\(\text{7 bit}\to \text{8 bit}\),即进行最高位的 flip,于是手动处理输出即可。
代码
import base64
dec = "4nXna/V7t2LpdLI44mn0fQ=="
s = base64.b64decode(dec)
for i in range(len(s)):
x = s[i] & 0x7F
print(chr(x), end = '')