Terashima's Page

研究内容

セキュリティ演習を実施するための演習環境をより簡単で安全に構築,運用するための研究を行っています.

セキュリティ演習を開催するためには特殊な環境が必要です.実際に攻撃を行ったり通常では発生しない通信を行うためです.

また,セキュリティホールがあるアプリケーションを動作させることもあり,インターネットに公開することは好ましくありません.

そこで,演習専用のネットワークやアプリケーションなどを動作させることで特殊な演習環境を構築し,演習を行います.

しかし,この演習環境は特殊なので構築,運用が簡単でなく,気軽に構築することができません.

私の研究はそういったセキュリティ演習を行うために演習環境を簡単かつ安全に構築することができるための手法を開発することです.

問題

私からの問題はインターネットを構成している重要な要素であるHTTPプロトコルについての問題です.

私の研究とは関連が薄いですがネットワークプロトコルは非常に興味深いのでこの分野からの問題としました.

皆さんはbasic認証というものをご存知でしょうか?basic認証とはHTTPプロトコルに標準で搭載されている認証機能です.

basic認証が設定されているWebページにユーザがアクセスすると,ユーザはユーザ名とパスワードを入力することを要求されます.予め設定されたアカウント情報を正しく入力しなければそのページにアクセスすることができません.

これによってリソースへのアクセス権限を制限するとこが可能となります.今回はこちらの認証を突破することを通してHTTPプロトコルについて知っていただければと思います.

問題1

問題1のリンクこちらのページにアクセスしてみてください.

basic認証によってページへのアクセスが制限されています.このページの認証を突破して制限されたページにアクセスすることができるとフラグを入手することができます.

問題2

問題1が解けた方はこちらの問題にチャレンジしてみてください.

問題2のリンクこちらのページにアクセスしてみてください.

問題1と同様にbasic認証によりアクセス制限がかかっています.この問題は問題1と異なり実際の環境で使用されるbasic認証と同様のものです.

しかし,通信を暗号化していない場合,認証済みのユーザの通信をキャプチャすることで認証情報を取得することができます.

実際に暗号化していない認証済みのユーザの通信をキャプチャしたパケットは以下のようになっています.

このパケットを調査して認証を突破してみてください.

HTTP Packet

GET /problems/terashima-problem/problem/problem2 HTTP/1.1

Host: welcom.localhost

Connection: keep-alive

Cache-Control: max-age=0

Authorization: Basic Ym9iOmJhc2ljX2F1dGhfaXNfc3B1ZXJfc2VjdXJl

Upgrade-Insecure-Requests: 1

User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9

Sec-Fetch-Site: same-origin

Sec-Fetch-Mode: navigate

Sec-Fetch-User: ?1

Sec-Fetch-Dest: document

Referer: http://welcom.localhost/problems/terashima-problem

Accept-Encoding: gzip, deflate, br

Accept-Language: ja,en-US;q=0.9,en;q=0.8

ヒント

問題1

問題1のリンクの認証ページをブラウザのデベロッパーツールを開いて通信の内容を詳しくみてみてください.

問題2

問題文に添付されたファイルを開いてHTTPパケットを詳しく調査してみてください.

問題1の認証を突破した後のページがヒントとなっています.問題2に取り組む前に問題1にチャレンジしてみてください.