OSコマンドインジェクション

OSコマンドインジェクションとは何ですか?

OSコマンドインジェクションは、不正なオペレーティングシステムコマンドの実行を可能にするwebセキュリティの脆弱性です。 OSコマンドインジェクションの脆弱性は、webアプリケーションがサニタイズされていないフィルタリングされていないシステ 入力検証が不十分であるため、攻撃者はシェルレベルで操作するために独自のコマンドを挿入する可能性があります。 攻撃者は、cookie、フォーム、HTTPヘッダーなどのユーザーが指定したデータを介してオペレーティングシステムコマンドを導入します。

攻撃者が提供するOSコマンドは、通常、脆弱なアプリケーションの権限で実行されるため、これは危険な脆弱性です。 したがって、攻撃者はsyOS command injectionstemを操作するホストを完全に制御し、アプリケーションとそのすべてのデータを侵害する可能性があります。

攻撃者が実行可能な入力をプログラムに送信し、その入力を実行するようにソフトウェアをだましたときに存在するコードインジェクションの脆弱性とは異なります。 コマンドインジェクションの脆弱性は、保護されていないシステムの弱点を悪用し、コードを注入することなく任意のコマンドを実行できます。 両方の脆弱性は、適切な入力/出力データ検証の欠如から発生します。

便利なコマンド

以下は、攻撃しているオペレーティングシステムに関する詳細な情報を提供する便利なコマンドです

コマンドの目的

リナックス

ウィンドウズ

現在のユーザーの名前

whoami(ワアミ)

whoami(ワアミ)

オペレーティングシステム

uname-a

ver

ネットワーク構成

ifconfig

ipconfig/all

ネットワーク接続

netstat-an

netstat-an

実行中のプロセス

ps-ef

タスクリスト

OSコマンドを注入する方法

コマンド注入の脆弱性についてアプリケーションをテストするには、コマンドを連鎖させるメタキャラクタを使用してみてください。 独自のコマンドを実行できる場合、webアプリケーションは脆弱です。 次のコマンド区切り文字は、WindowsベースとUnixベースの両方のシステムで動作します:

  • &
  • &&
  • |
  • ||

他のコマンドインジェクションペイロードには、アプリケーションが応答するのにかかる時間に基づいてコマンドが実行されたことを確認できるように、時間遅延をトリガする以下のpingコマンドが含まれています。 以下のコマンドは、応答を返すのに10秒かかります。

&ping-c10 127.0.0.1 &

攻撃者は、NSLOOKUPコマンドを制御するドメインに利用することによって、OSコマンドの脆弱性を確認することもできます。 ルックアップが発生した場合、彼らはコマンド注入が成功したことを知っています。

アプリケーションをテストするためのさまざまな他のコマンド:

php-vは、WEBアプリケーションサーバー上で実行されているPHPバージョンを提供します。

&&cat/etc/passwddisplaysバックエンドLinuxサーバー上のすべてのユーザー

/etc/shadowdisplaysすべてのハッシュされたパスワードが、あなたがroot権限で実行している場合にのみ。

OSコマンドインジェクション攻撃を防ぐ方法

  1. 防衛オプション1:OSコマンドを直接呼び出すのを避ける-OSコマンドを直接呼び出すのを避ける。 組み込みのライブラリ関数は、OSコマンドの非常に良い代替手段です。
  2. 防御オプション2:各OSに固有のOSコマンドに追加されたエスケープ値–PHPのescapeshellcmd()など。
  3. 防御オプション3:入力検証と組み合わせたパラメータ化–Ifuser-suppliedは回避できませんparameterizationandinput validationshouldは使用されています。

コメントを残す

メールアドレスが公開されることはありません。