本文主要是介绍[羊城杯 2020]TCP_IP,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
知识点:IP数据报隐写
标识(Identification):由发送方帮助组装数据报的片段的标识值。
- 以太网缺省MTU=1500字节,这是以太网接口对IP层的约束(保证链路层的载波多路复用/冲突检测机制),如果IP层有<=1500字节的数据需要发送,只需要一个IP包就可以完成发送任务;如果IP层有>1500字节数据需要发送,需要分片才能完成发送。
- 也就是说当要发送的数据小于1500字节时,这个地方的数据变得没有意义,这里就是一个隐蔽通道。
打开题目文件:
这里最开始引起注意的有两个地方,SourceIP末尾的数字和Tcp传输的数据,最终都没有发现flag。而是隐写到了IP数据报的Identification字段,tshark命令提取:
tshark -r .\attachment.pcap -T fields -e ip.id > data.txt
-
字段名可以通过以下方式获得:
得到:
0x00000040
0x00000069
0x00000048
0x0000003c
0x0000002c
0x0000007b
0x0000002a
0x0000003b
0x0000006f
……
ASCII写出:
import binasciiinfile = open('Autopy/crypto/doc/form','r')
content = infile.readlines()
flag = b""
for line in content:flag += binascii.unhexlify(line.rstrip('\n')[-2:])
infile.close()
print(flag)
得到:
b'@iH<,{*;oUp/im"QPl`yR*ie}NK;.D!Xu)b:J[Rj+6KKM7P@iH<,{*;oUp/im"QPl`yR'
base91解码,或者无脑解码脚本
import base91
print(base91.decode(flag.decode()))
flag{wMt84iS06mCbbfuOfuVXCZ8MSsAFN1GA\xfd\xe3\x9f"1w\xe3Aw\xea\xbe\x18\tXV\xb8|\x8f
flag:
flag{wMt84iS06mCbbfuOfuVXCZ8MSsAFN1GA}
这篇关于[羊城杯 2020]TCP_IP的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!