xctf攻防世界 MISC高手进阶区 奇怪的TTL字段

1. 进入环境,下载附件

题目给的压缩包,并提示TTL有东西,我们打开TTL观察一下:
在这里插入图片描述
没有其他的信息了,乱码文件不知所措。

2. 问题分析

  1. 理解TTL含义
    统计了一下,题目中的TTL有四种,分别是63,127,191,255,以往的猜测,这种数字必然与二进制和ASCII码有关。

63 = 00111111
127=01111111
191=10111111
255=11111111

可观察到,除了前两位不同,后六位都一样,那么起到重要作用的是前两位。

  1. 转换成图片
    这一步没思路,参考网上的wp,发现猜想对了一部分,其实目的就是前两位组成有效图片。为什么能想到这里,大佬的脑回路我也理解不了,上代码!
import binascii

with open('xctf/pic/ttl.txt', 'r') as file:
    lines = file.readlines()

    ttl_data = ''
    for line in lines:
        prefix = "{0:b}".format(int(line[4:])).zfill(8)
        ttl_data += prefix[0:2]

flag = ''
for i in range(0, len(ttl_data), 8):
    flag += chr(int(ttl_data[i:i + 8], 2))

# 打印出来的flag前一段为ffd8ffe1001845786966000049492a00080000000000000000000000
# ffd8ff明显是图片的文件头,因此需要存储成图片
print(flag)

flag = binascii.unhexlify(flag)
with open('./res.jpg', 'wb') as file:
    file.write(flag)

参考格式化代码:Python –如何将int转换为二进制字符串?

得到结果如图:
在这里插入图片描述
这么一小块二维码肯定不行,猜想是否有隐藏信息。

  1. 继续分离
    丢入kali,binwalk一下,如图:
    在这里插入图片描述
    发现还真有东西!那么继续foremost分离,得到结果如图:
    在这里插入图片描述
    这么多隐写图片,牛逼!

  2. 合成二维码
    丢入Photoshop中,我们拼凑一下:
    在这里插入图片描述
    手机扫码后得到信息:

key:AutomaticKey cipher:fftu{2028mb39927wn1f96o6e12z03j58002p}

  1. 在线解密
    https://www.wishingstarmoye.com/ctf/autokey,如图:
    在这里插入图片描述
    最终的答案为:flag{2028ab39927df1d96e6a12b03e58002e}
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

l8947943

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值