rot-偏移,ascii,md5爆破
题目:
破解下面的密文:
83 89 78 84 45 86 96 45 115 121 110 116 136 132 132 132 108 128 117 118 134 110 123 111 110 127 108 112 124 122 108 118 128 108 131 114 127 134 108 116 124 124 113 108 76 76 76 76 138 23 90 81 66 71 64 69 114 65 112 64 66 63 69 61 70 114 62 66 61 62 69 67 70 63 61 110 110 112 64 68 62 70 61 112 111 112
flag格式flag{}
结合题目名称为“rot”,尝试rot解码,本题为rot13
numbers = [
83, 89, 78, 84, 45, 86, 96, 45, 115, 121, 110, 116, 136, 132, 132, 132,
108, 128, 117, 118, 134, 110, 123, 111, 110, 127, 108, 112, 124, 122,
108, 118, 128, 108, 131, 114, 127, 134, 108, 116, 124, 124, 113, 108,
76, 76, 76, 76, 138, 23, 90, 81, 66, 71, 64, 69, 114, 65, 112, 64, 66,
63, 69, 61, 70, 114, 62, 66, 61, 62, 69, 67, 70, 63, 61, 110, 110, 112,
64, 68, 62, 70, 61, 112, 111, 112
]
letters = ''.join(chr(num-13) for num in numbers)
print(letters)
输出不是完整的flag

再爆破一次md5
import hashlib
import itertools
target_md5 = "38e4c352809e150186920aac37190cbc"
flag_prefix = "flag{www_shiyanbar_com_is_very_good_"
ascii_chars = [chr(i) for i in range(32, 127)]
for comb in itertools.product(ascii_chars, repeat=4):
flag_guess = flag_prefix + ''.join(comb) + "}"
md5_hash = hashlib.md5(flag_guess.encode()).hexdigest()
if md5_hash == target_md5:
print(f"找到匹配的flag: {flag_guess}")
break
运行得到结果

浙公网安备 33010602011771号