Shikata Ga Nai

Private? There is no such things.

LAB: OSコマンドインジェクション(シンプルケース)攻略解説

Hello there, ('ω')ノ

🎯 ラボの目的

このラボでは、商品と店舗IDを使った在庫確認機能にOSコマンドインジェクションの脆弱性があります。

この脆弱性を利用して、whoami コマンドを実行し、サーバー上の実行ユーザー名を表示させることでラボをクリアします。


🛠 攻略手順(わかりやすく解説)

1. 在庫確認ページを使う

アプリの「Check stock」機能を使って、任意の商品ID・店舗IDを選んで送信します。


2. Burp Suiteでリクエストをキャプチャ

  • Proxy > HTTP history に移動し、該当リクエスト(/product/stock のようなエンドポイント)を探します。
  • リクエスト内の storeID=1 のようなパラメータを見つけます。

3. storeID にコマンドを注入

例:

storeID=1|whoami
  • |パイプ演算子で、前のコマンドの出力を次のコマンドに渡すこともできますが、
  • この例では、前のコマンドが失敗しても whoami が実行されることが狙いです。

4. 実行結果を確認

レスポンス本文に whoami の出力(例:www-dataapache などのユーザー名)が含まれていれば成功!


✅ 攻略のポイント

項目 解説
💣 脆弱性 入力値をOSコマンドの引数として直接結合している
🧪 成功確認方法 echo 任意文字列whoami を使って出力確認
🎯 目的 任意のOSコマンドが実行されることを証明する

🧠 応用テクニック

  • & whoami &; whoami なども試せます(サーバーのシェル設定次第で使えるセパレータが変わります)。
  • cat /etc/passwdls / など、ファイル閲覧やディレクトリ調査にも応用可能です。

Best regards, (^^ゞ