攻防世界MISC新手练习区掀桌子

    大家好,这次为大家带来攻防世界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。

发布了8 篇原创文章 · 获赞 6 · 访问量 264

猜你喜欢

转载自blog.csdn.net/MarcusRYZ/article/details/104238644
今日推荐