题目
我们截获了一些IP数据报,发现报文头中的TTL值特别可疑,怀疑是通信方嵌入了数据到TTL,我们将这些TTL值提取了出来,你能看出什么端倪吗?
下载:ttl.zip
分析
一开始以为是转成ascii,然后发现并不是。
结果去重复之后,发现只有127,63,191,255四个结果。
转换为ascii后发现一个是正问好一个是反问号和两个奇怪的东西。
然后把问好当成点划,其他当成换行符空格,用摩斯电码,也不是。
把四个结果当成上下左右,也不是。
最后问了问dalao。是吧四个结果当成00 01 10 11.
IP报文在路由间穿梭的时候每经过一个路由,TTL就会减1,当TTL为0的时候,该报文就会被丢弃。TTL所占的位数是8位,也就是0-255的范围,但是在大多数情况下通常只需要经过很小的跳数就能完成报文的转发,远远比上限255小得多,所以我们可以用TTL值的前两位来进行传输隐藏数据。
如:须传送H字符,只需把H字符换成二进制,每两位为一组,每次填充到TTL字段的开头两位并把剩下的6位设置为1(xx111111),这样发4个IP报文即可传送1个字节。
因为是255,所以转换为二进制的最大长度也就是8位了。
然后禁制查看
63转二进制是00111111,127是01111111,191是10111111,255是11111111
然后再取前两位,因为后面6位都被设置为1。
即可对应63->00,127->01,191->10,255->11
之后,试试转换为hex。
看到ffd8头,就知道这是图片了
然而这些只是hex的文本形式,我们得把这些转换成文件流。
写出后打开,发现是部分二维码
使用Stegsolve后发现,有6个frame,全部提取出来,之后用画图拼起来
最后给拼出了个这个
然后去解析,得出
key:AutomaticKey cipher:fftu{2028mb39927wn1f96o6e12z03j58002p}
然后更具key,google一下,找到了自动密码钥密码,在线解密一波
因为这种加密方式只对字母有效,我们还得手动把括号和数字加上去
得出 flag{2028ab39927df1d96e6a12b03e58002e}
好专业的东西啊