技術系前回、DVWAに対してSQLインジェクションを仕掛けてパスワードを抜き出すということをしました。Injection)とは、...it-hack.netしかし、毎回コマンドを打ち込んでいるのは面倒です。実はSQLの脆弱性を自動で調べてくれるツールは沢山あります。Linuxのsqlmapを使用してSQLインジェクションを行います。Ever.簡単に訳すと「高度な脆弱性テストディストリビューション」です。ディストリビューションとはOSのようなものです。Cracker、ポートスキャンをするnmapなど数えきれない程のテストソフトがインストールされています。Editionとなりローリング・リリース形態に変わりました。ついでに、アメリカの連続ドラマ「Mr.Robot」で行われたハッキングにもこのディストリビューションを使用したシーンがありました。Linuxとか使用していて演出も凝っているなと思いながら観ていました。Suiteが用意されているのでターミナルで立ち上げます。Listenerで待ち受けるプロキシを確認します。Suiteに通信内容を読ませます。設定する前に、DVWAにアクセスしておきます。ブラウザにプロキシを設定していきます。Settingsを開きます。configurationを選択して先ほど確認したプロキシ入力します。protocolsにチェックをいれて全てに適応させます。Suiteに情報が読み込まれます。IDに1を入力してSubmitしてみます。注目して欲しいのは赤枠の部分です、更新がずっと終わりません。GETメソッド、リファラ、Cookieなどの情報を取得できました。Valueなども取れました。ちなみに、今回やりたい事とは違いますがidの1を4に変更してみます。すると、id:1と入力したはずがid:4として結果が返ってきました。この仕組を利用してサイトに別の情報を掴ませるなんて攻撃もありますが、今回は違うのでまた今度。sqlmapsqlmapとは対象のサイトにSQLインジェクションの脆弱性が存在するかを自動で検証してくれるツールです。このツールはPythonで作成されています。sqlmapで脆弱性を検出sqlmapを使用するにはGETメソッドかPOSTメソッドを使用します。Suiteで取得していますのでこれを使用します。今回の場合GETで始まっているのでGETメソッドです。POSTで始まる場合はPOSSTメソッドです。GETメソッド/POSTメソッドの違いこれは、サーバに対して情報を送る際にURLに値を付加するか,しないかの違いです。GETメソッドがURLに値を付加するPOSTメソッドがURLに値を付加しないです。Suiteで判断出来ます。実行にはリファラを使用します。Type,Titleの部分が重要です。どのような脆弱性が検出されたか表示してくれています。blind」という脆弱性が見つかりました。オプションに付けてデータベースを取り出します。テーブル検索-Dでデータベースを検索します。–tableはデータベース「dvwa」のテーブルを表示しろという命令です。//dvwaのテーブルを表示します。//dvwaのテーブルを表示します。カラム検索続いてカラムを取得します。-Tでテーブルを検索してくれます。–columnはテーブル「users」のカラムを表示しろという命令です。//usersのカラムを表示します。//usersのカラムを表示します。結果をダンプ最後にパスワードを表示します!-Cでカラムを検索してくれます。–dumpはカラム「user,password」の内容をを表示しろという命令です。//user,passwordをダンプします。//user,passwordをダンプします。最後に前回は手動でSQLインジェクションを試しましたが、今回は専用のツールを使用してSQLインジェクションをしてみました。非常に簡単に脆弱性の検出ができましたね!sqlmapは今回の脆弱性以外にも沢山の脆弱性に対応しているので、自分のサイトに脆弱性が存在するかといった場合に検証するツールとしては良いツールだと思います!しかし、このツールでクラッキング行為することも可能です。前回も書きましたがsqlmapを使用して他人のサーバを攻撃することが違法です!そこら辺は十分注意して使用して下さい。Linuxを使用したペネトレーションテストを実験していこうと思っておりますので、今後の記事にもご期待ください。コメントをキャンセルメールアドレスが公開されることはありません。管理人サイト管理人のTobitaです。当ブログではIT全般の記事を幅広く掲載しております。企業様からのレビュー依頼、その他お問い合わせに関しましてはこちらからお願いします。