Security-testing-testing-injection

提供:Dev Guides
移動先:案内検索

セキュリティテスト-インジェクション

インジェクション手法は、アプリケーションの入力フィールドを使用してSQLクエリまたはコマンドをインジェクトすることで構成されます。

Webアプリケーション-インジェクション

SQLインジェクションが成功すると、データベースから機密データを読み取って変更したり、データベースからデータを削除したりできます。 また、ハッカーはDBMSのシャットダウンやデータベースの削除など、データベースで管理操作を実行できます。

単純な図を使用して、この欠陥の脅威エージェント、攻撃ベクトル、セキュリティの弱さ、技術的影響、ビジネスへの影響を理解しましょう。

SQLインジェクション

アプリケーションは、以下の脆弱なSQLコールの構築に信頼できないデータを使用します-

String query = "SELECT * FROM EMP WHERE EMPID = '" + request.getParameter("id") + "'";

ハンズオン

  • ステップ1 *-以下に示すように、アプリケーションのSQLインジェクションエリアに移動します。

SQLインジェクション

  • ステップ2 *-演習で示したように、文字列SQLインジェクションを使用して認証をバイパスします。 SQLインジェクションを使用して、正しいパスワードを使用せずにボス(「ネビル」)としてログインします。 Nevilleのプロファイルを表示できること、およびすべての機能(検索、作成、削除など)が使用可能であることを確認します。
  • ステップ3 *-パラメータを 'a' = 'a’または1 = 1として送信してパスワードをバイパスできるようにSQLを挿入します

SQLインジェクション

  • ステップ4 *-悪用後、以下に示すように管理者であるネヴィルとしてログインできます。

SQLインジェクション

SQLインジェクションの防止

SQLインジェクションを防ぐ方法はたくさんあります。 開発者は、コードを記述するときに、それに応じて特殊文字を処理することを確認する必要があります。 OWASPから利用可能なチートシート/防止テクニックがあります。これは開発者向けのガイドです。

  • パラメータ化されたクエリの使用
  • すべてのユーザー指定入力のエスケープ
  • エンドユーザーに対してデータベースの最小特権を有効にする