pcapngファイルをWiresharkで開きます。TCPストリーム0を表示してみます。The nack
100
Our IT staff captured this weird looking transaction.
Can you tell us what it says??
00000000 47 4f 41 54 01 47 49 46 38 GOAT.GIF 8
次にTCPストリーム1を表示してみます。
00000000 47 4f 41 54 01 39 61 4e 02 GOAT.9aN .
TCPストリーム2を表示してみます。
00000000 47 4f 41 54 01 e1 00 a1 00 GOAT.... .
TCPストリーム3を表示してみます。
00000000 47 4f 41 54 01 00 ff ff ff GOAT.... .
TCPストリーム4を表示してみます。
以上を整理すると、次のとおり、GOAT.の後ろの4バイトがGIFのデータになっていることがわかります。00000000 47 4f 41 54 01 00 00 00 ff GOAT.... .
それでは、GOAT.(47 4f 41 54 01)の次の4バイトを抽出してファイルに保存するPythonプログラムを書きます。47 49 46 GIF38 39 61 89a4e 02 幅=590e1 00 高さ=225a10000ff ff ff 00 00 00 ff
import refilename = r'ce6e1a612a1da91648306ace0cf7151e6531abc9.pcapng'with open(filename, 'rb') as f:data = f.read()i = 0with open("aaa.gif", 'wb') as f:while i >= 0:i = data.find("GOAT\x01", i+5+4)f.write(data[i+5:i+5+4])
順番にフレームを見てみると、17フレーム目にフラグがあります。
フラグは、
TUCTF{this_transport_layer_is_a_syn}










