Upgrade to Pro — share decks privately, control downloads, hide ads and more …

パケットで遊ぼう / let's play using network packet

パケットで遊ぼう / let's play using network packet

#ssmjp 2015/04で発表したスライドです。
http://ssmjp.connpass.com/event/13173/
http://takahoyo.hatenablog.com/entry/2015/04/26/155029

pcapファイルをいろいろと弄って遊んでみました!

takahoyo

April 25, 2015
Tweet

More Decks by takahoyo

Other Decks in Programming

Transcript

  1. パケットとは パケット (packet) とは、「小包」のことであるが、日本 ではもっぱらパケット通信または蓄積交換(通信方式)に おける情報の伝送単位を指す。主としてISOのOSI参照モ デルでは第3層 ネットワークレイヤで使われる。RFC 1122では、インターネットレイヤで使われる。 パケット単位で通信を行うことにより、ネットワークの帯

    域を連続して占有することがなくなって複数の端末からの 送受信データを1本の信号線上に多重化出来る、データの 一部が破損・喪失しても少ないコストで再送が可能になる、 網状の通信路構成に適している、などの利点がある。 Wikipedia(http://ja.wikipedia.org/wiki/%E3%83%91%E3%82%B1%E3%83%83%E3%83%88)より 2015/4/25 5
  2. エラーの原因 • HTTPヘッダ部分を書き換えた = TCPのデータのバイト数が変わった • TCPヘッダには… • シーケンス番号、ACK番号 •

    送信されるデータバイト数によって変化 • シーケンス番号とACK番号がおかしいのでは! 2015/4/25 20
  3. 2015/4/25 21 192.168.1.154 157.7.205.139 13. GET /favicon.ico HTTP/1.1 seq =

    3340263310 ack = 257904800 data = 306 byte 14. HTTP/1.1 404 Not Found seq = 257904800 ack = 3340263616 data = 315 byte 15. GET /favicon.ico HTTP/1.1 syn = 3340263616 ack = 257905115 data = 306 byte seq = 3340263310 ack = 257904800 ↓ seq = 257904800 ack = 3340263310 + 306 seq = 257904800 ack = 3340263616 ↓ seq = 3340263616 ack = 257904800 + 315 ・ ・ ・ ・ ・ ・
  4. 2015/4/25 22 192.168.1.154 157.7.205.139 13. GET /favicon.ico HTTP/1.1 seq =

    3340263310 ack = 257904800 data = 273 byte 14. HTTP/1.1 404 Not Found seq = 257904800 ack = 3340263583 data = 315 byte 15. GET /favicon.ico HTTP/1.1 syn = 3340263583 ack = 257905115 data = 306 byte seq = 3340263310 ack = 257904800 ↓ seq = 257904800 ack = 3340263310 + 273 seq = 257904800 ack = 3340263583 ↓ seq = 3340263583 ack = 257904800 + 315 ・ ・ ・ ・ ・ ・