掀桌子的writeup

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值