Shikata Ga Nai

Private? There is no such things.

LAB: バックアップファイルによるソースコード漏洩

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, (^^ゞ