【ksnctf】 #9 Digest is secure!をやってみた。

ksnctf.sweetduet.info

 

  • Digest認証

問題文からDigest認証使うのだろうということで調べてみると、Wikipediaに分かりやすい解説が書かれていた。

Digest認証 - Wikipedia

WikipediaからDigest認証をパスするためには以下の値を揃えないといけないことがわかるので探していこう。

ユーザ名
 パスワード
 response
 nonce
 nc
 cnonce
 qop
 HTTPメソッド
 コンテンツURI
  • パケット調べる

f:id:Hpaeboiptle:20161118233325p:plain

 Wiresharkを使って配布されたパケットを開いてみるとNo.7,9,14,16でHTTP通信があり以下の値がGetできる。

ユーザ名  q9
 パスワード ???
 response

c3077454ecf09ecef1d6c1201038cfaf

 nonce bbKtsfbABAA=5dad3cce7a7dd2c3335c9b400a19d6ad02df299b
 nc

00000001

 cnonce  9691c249
 qop  auth
 HTTPメソッド  GET
 コンテンツURI

/~q9/flag.html

www.kiyori.co.jp

MD5は既に破られているので逆変換ができるのではないかと思ったので調べたら見つかった!!これでパスワードなくてもHash(A1)が使える!!

  • プログラム

Digest認証に必要な値は揃ったのであとは、サーバから受け取るnonceを受け取ってresponseを計算したら完成だろうということでプログラムを書いて終了!

CTF-Digest is Secure!!

  • 感想

Basic認証に比べDigest認証ではパスワードをそのまま送信せずMD5を使っていることから安全だと思ったが、MD5が既に破られてしまっているようなので、ログインするために別ページを設けるべきなんだろうと思った。