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)该题也涉及本知识点,有兴趣可以看看

BUUCTF[SWPU2019]Network--TTL加密
浙公网安备 33010602011771号