大家好,这次为大家带来攻防世界misc部分掀桌子的writeup。
这道题没有附件,只有一串奇怪的题目描述:菜狗截获了一份报文如下c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2,生气地掀翻了桌子(╯°□°)╯︵ ┻━┻
发现其中有一串编码:c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2
先用base64解码试试看,不出所料,行不通。然后仔细观察这串字符串,发现如果按两个一组分,感觉有点像16进制。于是用python写个脚本转一下十进制。
def hex_dec(string):
i = 0
s = ""
number_str = ""
while i <= len(string) - 1:
s += string[i]
if i % 2 == 1:
i += 1
if i != len(string):
number_str = number_str + str(int(s, 16)) + " "
s = ""
continue
i += 1
return number_str
hex = input("Please input hex_string: ")
noun = hex_dec(hex)
f = open("result.txt", "w")
f.write(noun)
运行后得到一串比较大的数,不可能直接转ascll码,试着对每个数减去128,再转ascll码,可行。
def dec_asc(number):
i = 0
s = ""
s1 = ""
while i <= len(number) - 1:
if number[i] != " ":
s += number[i]
else:
s1 = s1 + chr(int(s) - 128)
s = ""
i += 1
return s1
f = open("result.txt", "r")
dec_string = f.read().rstrip()
dec_string = dec_asc(dec_string + " ")
f = open("result.txt", "w")
f.write(dec_string)
运行后得flag:hjzcydjzbjdcjkzkcugisdchjyjsbdf。