1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ksnctf #8 Basic is secure?

Posted at

#Basic is secure?
問題

Basic is secure?:Basic認証はセキュアですか?

Basic認証についての問題。
http通信における認証方式の1つで、以下の手順で通信が行われる。

1.クライアントは認証が必要なページをリクエストする。しかし、通常ここではユーザ名とパスワードを送っていない。なぜならばクライアントはそのページが認証を必要とするか否かを知らないためである。
2.サーバは401レスポンスコードを返し、認証領域 (authentication realm) や認証方式 (Basic認証) に関する情報をクライアントに知らせる。
3.それを受けたクライアントは、認証領域(通常は、アクセスしているコンピュータやシステムの簡単な説明)をユーザに提示して、ユーザ名とパスワードの入力を求める。ユーザはここでキャンセルすることもできる。
4.ユーザによりユーザ名とパスワードが入力されると、クライアントはリクエストに認証ヘッダを追加して再度送信する。
5.認証に成功すると、サーバは認証の必要なページのリクエストを処理する。一方、ユーザ名やパスワードが間違っていた時には、サーバは再び401レスポンスコードを返す。それによりクライアントは再びユーザにユーザ名とパスワードの入力を求める。

「ユーザー名:パスワード」という形式の文字列をbase64でエンコードしたものを認証キーとして用いる。このため、盗聴や改竄か簡単にできる。

問題にはq8.pcapというファイルがあった。ダウンロードしてWireSharkで開いてみる。
スクリーンショット 2021-03-16 22.16.26.png
http通信でフィルタをかける。

まずNo.7でサーバーにページをリクエストしている。次にNo.9で、サーバーがクライアントに401レスポンスを返して、Basic認証のための情報を要求する。ちなみに、下の画像からBasic認証であることがわかる。スクリーンショット 2021-03-16 22.21.56.png
次のNo.13では、クライアントがサーバーに対して、「ユーザー名:パスワード」という形式の文字列をbase64でエンコードしたものを送信している。(下図のAuthorization: Basic cTg6RkxBR181dXg3eksyTktTSDhmU0dBの部分。)これをbase64でデコードすればFLAGが取得できそう。ここでやってみる。
また、WireSharkでは下図のCredentials(認証情報)よりFLAGは自明だった。スクリーンショット 2021-03-16 22.26.32.png

#まとめ
Basic認証について学べた。
パケットチャプチャすることで簡単に認証情報をみることができた。
Basic is NOT secure.

1
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?