Basic is secure? のメモ

ksnctf proglem 8 の Basic is secure? を解いた時のメモです。
ネタバレされたくない人は戻ってください。
回り道をしているので、答えだけ知りたい人は、最後のまとめだけ見てください。

問題ページには以下のリンクだけがある。

http://ksnctf.sweetduet.info/q/8/q8.pcap

まず、pcapとは何か調べると、

pcap (packet capture) とは、コンピュータネットワーク管理の分野におけるパケットスニファのためのAPIである。Unix系のシステムではpcapはlibpcapとして実装されている。

wikipediaにはあった。

そういえば、tcpdumpというツールがあったなぁと思いだし、調べてみると、-rでファイルから読み込めるらしい。

tcpdump -A -r q8.pcap

としてみると、次のような文章があった。

<p>The flag is q8's password.</p>

パスワードらしきものが無いか探してみると、Basic認証に関連するヘッダが。

WWW-Authenticate: Basic realm="Secret"
Authorization: Basic cTg6RkxBR181dXg3eksyTktTSDhmU0dB

調べてみると Authorization: Basic credential文字列 となっているようで、文字列は"ユーザー名:パスワード"をBase64エンコードしたものらしい。 デコードしてみると、

>echo -n "cTg6RkxBR181dXg3eksyTktTSDhmU0dB" | base64 -D
q8:FLAG_5ux7zK2NKSH8fSGA%

フラグが出てきた。

まとめ

  • pcap はキャプチャ結果のファイル
  • やり取りされたデータを見てみると、flag は q8 のパスワードらしい。
  • ヘッダを見てみると Basic 認証を使っていることがわかるので、Authorization ヘッダにある credentials を Base64 でデコードする。