LoginSignup
0
0

More than 1 year has passed since last update.

ダイジェスト認証  #2 response="XXX"の導出

Posted at

ダイジェスト認証  #1 Apache設定~動作確認に続きまして。
HA1(「ユーザ名:レルム:パスワード」のハッシュ値)が何らかの形で漏洩しているという前提で、ブラウザにユーザ・パスワードを入力することなく、response="XXX" の部分を算出、Webプロキシでリクエストを編集して認証を突破しよう、という「CTFの練習問題」的な文脈から本件検証・確認を行っております。

実機での確認動作

前回記載の通り、要「ダイジェスト認証」パスへの初回リクエストに対して、サーバから以下のレスポンス(改行を入れています)。

WWW-Authenticate:
Digest realm="digest",
nonce="jeqPGvfFBQA=9e2e2d4c04ea2ad4758a1129484608c9e8abea85",
algorithm=MD5,
stale=true,
qop="auth"

こちらに対してブラウザで正しいユーザ・パスを入れることで生成されたリクエスト(同上)。

Authorization:
Digest username="digest_user",
realm="digest",
nonce="jeqPGvfFBQA=9e2e2d4c04ea2ad4758a1129484608c9e8abea85",
uri="/digest/",
algorithm=MD5,
response="e6af4f81fa87ccde2bc4769ee237eea2",
qop=auth,
nc=00000001,
cnonce="10057899296509bc"

response="XXX" 導出仕様

Digest access authenticationから読み取るに(algorithm=MD5,qps=authの場合)

HA1 = MD5(username:realm:password)

HA2 = MD5(method:digestURI)

response = MD5(HA1:nonce:nonceCount:cnonce:qop:HA2)

前回の記載の通り、
ユーザ:レルム:パスワード=digest_user:digest:password
ですので、HA1は

# echo -n "digest_user:digest:password" | md5sum
46328f2142603a1d167a1a19de5210bf

HA2は

# echo -n "GET:/digest/" | md5sum
9942091bc79111e32fecde3962416017

そうすると上掲のnonce,cnonce,qop,ncと合わせて

# HA1=46328f2142603a1d167a1a19de5210bf
# HA2=9942091bc79111e32fecde3962416017
# nonce=jeqPGvfFBQA=9e2e2d4c04ea2ad4758a1129484608c9e8abea85
# cnonce=10057899296509bc
# qop=auth   
# nc=00000001

response="XXX"は

# echo -n "${HA1}:${nonce}:${nc}:${cnonce}:${qop}:${HA2}" | md5sum
e6af4f81fa87ccde2bc4769ee237eea2  -

ブラウザが導出した(=認証OKとなった)response="XXX"と同値を導出することができました。
HA1がわかる(何らかの形で漏洩した)という前提では、サーバから返されたnonce等の値により認証をパスできるresponse="XXX"を導出できることを改めて確認しました。

いったん完了とはしますが、

  • 認証パス後のリクエスト、レスポンスヘッダ
  • サーバがレスポンスしたnonceの扱い
  • nonceCount? qop?
  • httpサーバ実装による差異

等、可能であれば追記をしたいと考えております。

2021年06月30日 初版

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0