ksnctf: #9 digest is secure!
問題 http://ksnctf.sweetduet.info/q/9/q9.pcap
解法 問題文から分かるようにdigest認証の問題。 basic認証がガバガバだったのと違い、digest認証はもう少し安全。
wikipedia曰く以下のように認証する。
A1 = ユーザ名 “:” realm “:” パスワード
A2 = HTTPのメソッド “:” コンテンツのURI
response = MD5( MD5(A1) “:” nonce “:” nc “:” cnonce “:” qop “:” MD5(A2) )
ユーザーはサーバーからnonce、nc、conce、qopが与えられてresponseを作る。 サーバーはA1を持っているので、responseを作って照合する。
なるほど確かに逆ハッシュが出来ないと厳しそう。
hydraというツールがあるくらいなので出来ないことは無いのだろうが…
と思ってpcapファイルを眺めていると、なんとhtdigestを覗いているではないか!
GET /~q9/htdigest HTTP/1.1 Host: ctfq.sweetduet.info:10080 Connection: keep-alive Authorization: Digest username="q9", realm="secret", nonce="bbKtsfbABAA=5dad3cce7a7dd2c3335c9b400a19d6ad02df299b", uri="/~q9/htdigest", algorithm=MD5, response="d9f18946e5587401c303b34e00a059eb", qop=auth, nc=00000002, cnonce="6945eb2a7ba8cf7f" User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.