Hello there, ('ω')ノ
🔍 概要
このラボでは、Webアプリケーションが誤って公開しているバックアップファイルからソースコードを取得し、ハードコーディングされたデータベースのパスワードを特定する手法を学びます。
🧪 手順
1. robots.txt
の確認
まず、/robots.txt
にアクセスして、クロールを禁止しているディレクトリを確認します。
https://<ラボのドメイン>/robots.txt
ここで、/backup
ディレクトリが指定されていることがわかります。
2. バックアップディレクトリへのアクセス
次に、/backup
ディレクトリにアクセスして、利用可能なファイルを確認します。
https://<ラボのドメイン>/backup/
ここで、ProductTemplate.java.bak
というファイルが存在することがわかります。
3. バックアップファイルの内容確認
ProductTemplate.java.bak
ファイルにアクセスして、ソースコードの内容を確認します。
https://<ラボのドメイン>/backup/ProductTemplate.java.bak
ファイル内に、データベース接続のためのパスワードがハードコーディングされている箇所を探します。
例:
String dbPassword = "6qwu95tef27d47q3xtswr2yhln9nxlum";
4. パスワードの提出
取得したパスワードをラボの「Submit solution」セクションに入力して、課題を完了します。
💡 ポイントとコツ
robots.txt
の確認:robots.txt
は検索エンジンにクロールを禁止するディレクトリを指定するファイルですが、攻撃者にとっては隠されたディレクトリを見つける手がかりになります。バックアップファイルの命名規則: 開発者が作成するバックアップファイルは、
.bak
や~
などの拡張子が付けられることが多く、これらのファイルが誤って公開されていないか確認することが重要です。ソースコード内のハードコーディング: ソースコード内にパスワードやAPIキーなどの機密情報がハードコーディングされている場合、それらが漏洩すると重大なセキュリティリスクとなります。
🧠 学びのポイント
情報漏洩のリスク: バックアップファイルや開発用のファイルが公開されていると、攻撃者にとって貴重な情報源となり得ます。
セキュアな開発習慣: 開発時には、機密情報をソースコードにハードコーディングしない、不要なファイルを公開しないなど、セキュアな開発習慣を身につけることが重要です。
Best regards, (^^ゞ