これは、バグバウンティーハンターやペネトレーションテスターがSQLインジェクションの脆弱性の検出を自動化し、アプリケーションのセキュリティ姿勢における重大な弱点を潜在的に明らかにする方法の強力な例です。このコマンドの各部分を理解することで、異なる対象や環境に合わせてアプローチをカスタマイズして適応させることができます。SQLインジェクションに脆弱なパラメータを含む数千のURLのリストを扱う場合、手動で検索するよりも共通のデータベースを仮定する方が効率的です。
詳細な説明:
➡️ステップ1: sqlmapの使用
- コマンド:
sqlmap
- 説明: sqlmapツールを実行する主要なコマンドです。
➡️ステップ2: 対象サイトの定義
- パラメーター:
-u 'http://testphp.vulnweb.com/listproducts.php?cat=1'
- 説明:
-u
パラメーターはテストするURLを指定します。この場合、http://testphp.vulnweb.com/
が対象のウェブサイトであり、listproducts.php?cat=1
はSQLインジェクションのテストが行われるクエリ文字列パラメータです。
➡️ステップ3: 攻撃の強度と深さのオプション
- –risk=3: テストのリスクレベルを設定します。3は最も高いレベルで、ツールがより積極的なテストを行うことを示します。これにより、簡単に検出されたり、データベースのパフォーマンスに影響を与える可能性があります。
- –level=5: テストのレベルを決定します。5は最大値で、sqlmapに広範なテストと技術を使用して脆弱性を見つけるよう指示します。
➡️ステップ4: ステルスと回避技術
- –random-agent: 各HTTPリクエストでランダムなユーザーエージェントヘッダーを使用し、単純なHTTPリクエストフィルタリングシステムを回避します。
- –technique=B: 使用するSQLインジェクション技術を指定します。Bはブールベースの盲目SQLインジェクションを表し、SQLクエリが真または偽の応答を返し、クエリを変更することでデータを推測できる技術です。
➡️ステップ5: 自動化とパフォーマンス
- –batch: 対話モードを無効にし、sqlmapが入力を求めることなく実行されるようにします。
- –threads=10: 送信する同時HTTPリクエストの数を設定します。数が多いほど速度は上がりますが、テストマシンと対象サーバーの負荷も増えます。
➡️ステップ6: タンパースクリプト
- –tamper=[scripts]: リクエストを変更してフィルターやウェブアプリケーションファイアウォールを回避するために使用されるタンパースクリプトをリストアップします。含まれているスクリプトは、エンコーディング、スペースやコメントの追加、SQLキーワードやオペレータの変更など、広範囲の技術をカバーしています。
➡️ステップ7: データベースとアクションの仮定
- –dbms=mysql: バックエンドのデータベース管理システムをmysqlに指定します。これにより、sqlmapが特定のSQL方言に合わせてペイロードを調整できます。
- –forms: sqlmapにフォーム入力を解析してテストするよう指示します。
- –dump: 脆弱性を発見した後、このオプションはsqlmapにデータベースからデータを抽出するよう指示します。
- -v 3: 出力の詳細レベルを設定します。3は中間情報が表示されることを意味し、テストプロセスの洞察を提供します。
#おすすめペネトレーションテスト
#ペネトレーションテスト
#ペネトレーションテスト
#ペネトレーションテスト単価
#ペネトレーションテストいくら
#ペネトレーションテストするなら
#ペンテスト ワイトハッカー
#ペネトレーションテスト
#侵入テスト
#侵入テストいくら?
# 侵入テストやすい 侵入テスト単価