BUUCTF[SWPU2019]Network--TTL加密

BUUCTF[SWPU2019]Network--TTL加密

在做题中遇到的一个新知识点

TTl是什么?

TTL(Time to Live)是网络协议中一个字段,用于定义数据包(如IP数据包)在网络中的“生存时间”。每经过一个路由器,TTL值减1,当TTL为0时,数据包会被丢弃。其主要作用是防止数据包在网络中无限循环。

题目解析

下载得到一段长数字,以63 127 255构成

将其转换成二进制:

63————00111111
127————01111111
255————11111111

发现后6位都是1,只有前两位不一样

TTL加密即用前两位加密

本题解法就是将前两个二进制数提取出来,,再转换成16进制

附上一段脚本

import binascii

f = open('88888888888888888.txt', "r")
str = ''
Binary = ''
number = ''
while 1:
    num = f.readline()
    if not num:
        break
    if num.rstrip() == '63':  
        Binary = '00'
    elif num.rstrip() == '127':
        Binary = '01'
    elif num.rstrip() == '191':
        Binary = '10'
    elif num.rstrip() == '255':
        Binary = '11'
    str += Binary
for i in range(0, len(str), 8):
    number += chr(int(str[i:i + 8], 2))
data = binascii.unhexlify(number)

f2 = open('result.txt', 'wb')
f2.write(data)
f2.close()

将其改为zip文件,里面存在一个加密txt文件

伪加密,用java -jar ZipCenOp.jar r result.zip直接打开

得到一段base编码

发现是base64套娃

利用脚本

# -*- encoding: utf-8 -*-
import base64

f = open('flag.txt','rb').read()
while True:
    f = base64.b64decode(f)
    if b'{' in f:
        print(f)
        break
    else:
        continue

flag{189ff9e5b743ae95f940a6ccc6dbd9ab}

或者cyberchef一直进行base64解密


此外,[BUUCTF在线评测](https://buuoj.cn/challenges#[MRCTF2020]Hello_ misc)该题也涉及本知识点,有兴趣可以看看

posted @ 2025-04-02 17:26  阿瑞LI  阅读(155)  评论(0)    收藏  举报