SQLmap チュートリアル

自分で 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 スキャナを使用します。 簡単にアクセスできるようにホストされています。

コメントを残す

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