自分で SQLmap を実行することは難しくありません。
このチュートリアルでは、この強力な SQL インジェクション テスト ツールを使って、初心者から忍者へとあなたを導きます。 しかし、私たちはLinux、特にUbuntuが好きで、それは単純に物事を成し遂げるのを容易にします。 PythonはUbuntuにすでにインストールされています。
SQLmapを使い始めるには、ツールをダウンロードし、それを解凍し、必要なオプションでコマンドを実行するだけです。 Windowsユーザがいるかもしれないので、まずUbuntuをインストールし、実行する方法から始めます。 Ubuntu Linuxシステムは、Linuxを想像すると恐怖で震えが来るような人でも、簡単に始めることができます。 もしかしたら、それが好きになるかもしれません。
– SQLmapのインストール
– HTTP GET
– ブロックされる
– データベーステーブル
– データのダンプ
– Tips
– Verbose出力
– データベース認証
– DB接続認証
Install SQLmap
ステップ1.SQLmapのインストール。 LinuxベースのOSを入手する
WindowsでPythonを使ってSQLmapを実行する場合は、Pythonがインストールされていることを確認してから、次のステップに進みます。 そうでなければ、Linuxシステムを立ち上げてください。 Windows (Virtualbox / VMware / Parrallels) 上に Linux 仮想マシン (Ubuntu または Kali 推奨) をインストールするか、Linux デスクトップを起動します。
メイン オペレーティング システムとして Microsoft Windows を実行している場合、Ubuntu Linux (または Kali Linux) を仮想マシンでインストールすると便利で簡単に実行できます。 その後、sqlmap、nmap、nikto、openvas、および他の 100 の強力なオープン ソース セキュリティ ツールで遊ぶことができます。
ステップ 2: SQLmap のインストール
Python は Ubuntu にプリインストールされているので、git から最新のリポジトリを clone してテストを開始するだけでよいでしょう。
ディレクトリに移動して、すべてがうまく見えることを確認するために python スクリプトを実行します。
上記の出力のようなものが表示されない場合、python が機能しているかどうか (python -V
を試してください) バージョンと正しい場所にいることをチェックします。
利用可能なオプションの完全なリストを得るには python sqlmap.py -h
を実行します。
Running SQLmap
Simple HTTP GET based test
この単純なテストでは、パラメーター (?id=5) を持つ URI に対して標準の HTTP GET
ベースの要求を使用します。
python sqlmap.py -u 'http://mytestsite.com/page.php?id=5'
結果では、パラメータに対して使用されるさまざまな方法を確認できます。
Web Application Firewall – WAF
--randomagent
パラメータでデフォルトの sqlmap 以外のユーザーエージェントを使用してみてください。
データベース テーブルの取得
SQLmapは、SQLインジェクションのテストおよび悪用に使用でき、データベースからデータを抽出し、テーブルを更新し、すべてのカモが並んでいる場合はリモート ホストでシェルをポップすることさえ可能です。 以下の出力にあるように、脆弱性を再テストすることなく、ターゲットに対してテストを続けることができます。 SQLmapは、サイトについて知っている情報を使用して、ターゲットデータベースをさらに悪用します。
データを取得するために、前のコマンドにパラメータを追加するだけです。 --tables
を追加することで、すべてのテーブルの取得を試みることができます。
データをダンプする
データを取得するためには、単にコマンドを拡張するだけです。 -T users
を追加すると、users テーブルに焦点を当て、そこでいくつかのクレデンシャルを取得できるかもしれません。 --dump
を追加すると、SQLmapにusersテーブルからすべてのデータを取得するように指示し、まず列が列挙され、次に列からデータがダンプされます。
SQLmap Tips – Go ninja on your SQL Injection Testing
Verbose output
SQL インジェクションのテストでは、テストでの問題を判断したり、発見したインジェクションを確認またはさらに利用するために、しばしばリクエストを手動で掘り下げる必要が生じます。 SQLmap 出力の冗長性を高めることができれば、このテストに役立ちます。
冗長性を4に高めることにより、HTTP リクエストを取得でき、5では HTTP 応答ヘッダーを、6では HTTP 応答を完全に表示できます。 明らかに、これは非常にノイズが多いのですが、時には何が起こっているかを見る必要があります。
Got Database Credentials? これの良いところは、データベースの SQL 構文を覚えたり、クライアントをインストールしたりする必要がないことです。 SQLmap はデータベース クライアントの役割を果たし、データをダンプします。
DB 接続文字列:
MySQL, Oracle, Microsoft SQL Server, PostgreSQL
DBMS://USER:PASSWORD@DBMS_IP:DBMS_PORT/DATABASE_NAME
SQLite, Microsoft Access
DBMS://DATABASE_FILEPATH
ポップ シェルとその他
SQLmap には非常に多くの選択肢があり、データベースとの連携に素晴らしいツールであることがわかります。 ターゲット ホスト上でシェルを飛び出させる以外に、tor を通してリクエストを送信したり、ページ レスポンスで自動的にインジェクションを見つけたり、サイトをスパイしたり、もちろん HTTP POST ベースのテストを実行したりすることが可能です。 これらの例は、単に表面を削ったに過ぎません。
SQL インジェクションは、依然として攻撃者のお気に入りのターゲットです。
Web URI 上の注入可能なパラメータをテストするには、当社の SQL Injection スキャナを使用します。 簡単にアクセスできるようにホストされています。