INSIGHT

情報・インサイト

SQLインジェクションのチェックツール

2017.05.24

対象のURL(getパラメータ、postデータとか)にSQLインジェクションの脆弱がないかを調べてくれるツールのご紹介です。
!!! 無関係のサーバへのツール実行はしないでください !!!
攻撃ととらえられる可能性があります。

Windows のコマンドプロンプトから実行します。

◆python をインストール
インストールの後、環境変数:Path に python のインストール先を追加して、パスを通しておいてください
◆sqlmap 本体
ダウンロードして任意の場所に置いてください。

◆基本コマンド
ダウンロードしたところまで移動し、以下を実行

python sqlmap.py -u "対象URL"

◆オプション

【対象のURLを指定】
GETパラメータの場合、URLそのままコピー&ペースト

-u "http://www.testsite.local/?aaa=1&bbb=2"

例えば、URLの末尾が店舗IDなどのURLになっている場合、店舗IDパラメータに対してチェックをしたいのでパラメータが入る箇所に「*」を入れてインジェクションポイントを指定

-u "http://www.testsite.local/.../shop/1000*"
-u "http://www.testsite.local/.../shop/1000*/01*"

【使っているDBがPostgreSQLの場合】

--dbms PostgreSQL

【使っているDBが MySQLの場合】

--dbms MySQL

【POSTパラメータの場合】
URLはPOST先

-u "http://www.testsite.local/.../login/" --data="id=hogehoge&password=hogepass"

【UA:スマホの場合】

--user-agent="User-agent:Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_0_1 like Mac OS X; ja-jp) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5B108 Safari/525.20"

【UA:ガラケーの場合】

--user-agent="DoCoMo/2.0 P903i"

◆テンプレート例

python sqlmap.py -u "URLURLURLURLURLURLURLURLURLURLURLURLURLURLURLURLURL" --dbms PostgreSQL

python sqlmap.py -u "URLURLURLURLURLURLURLURLURLURLURLURLURLURLURLURLURL" --dbms PostgreSQL --user-agent="User-agent:Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_0_1 like Mac OS X; ja-jp) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5B108 Safari/525.20"

python sqlmap.py -u "URLURLURLURLURLURLURLURLURLURLURLURLURLURLURLURLURL" --dbms PostgreSQL --user-agent="User-agent:DoCoMo/2.0 P903i"

◆実行結果の見方

パラメータ param_id に対して、SQLインジェクション脆弱が検知された場合

   ---------------------------------------------------------------------------------------------
    Parameter: param_id (GET)
        Type: boolean-based blind
        Title: AND boolean-based blind - WHERE or HAVING clause
        Payload: param_id=6738 AND 7751=7751

        Type: UNION query
        Title: Generic UNION query (NULL) - 62 columns
        Payload: param_id=-9857 UNION ALL SELECT NULL,NULL,NULL,....~ 省略 ~
   ---------------------------------------------------------------------------------------------
    PCのユーザフォルダ以下にログデータが吐き出されます(メッセージ最後のあたりに出力先表示されます)

脆弱検知なし(上記のテンプレコマンドで実施した場合:レベル0)

   [14:34:43] [CRITICAL] all tested parameters appear to be not injectable. Try to increase '--level'/'--risk' values to perform more tests. ~・・・

[CRITIAL]とありますが、文面の通り「インジェクションできないようです」とのことなので、レベル0設定での脆弱検知なし。
レベル(0~5まで。デフォルトは 0)を引き上げて実施する事で脆弱検査ができます。

WORKS

導入事例

ウィズテクノロジーは大阪を拠点に、システム開発の分野で20年の実績を持つパートナー企業です。
業務効率化やDX支援など、さまざまな課題にワンストップで対応。
経験豊富なエンジニアが、企業の成長を技術面からしっかりサポートします。

導入事例一覧を見る
導入事例一覧を見る

RECRUIT

採用情報

未来に、価値ある選択を。

All WhizzTechnologyは、期待を超える価値をともにつくり、より良い未来へ導く仲間を募集しています。