疑問
ログインパスワードが分からなくてもデータベースに侵入されるって本当!?
そんな方への記事です。
結論
SQL言語を悪用することでユーザー名とパスワードが分からなくても侵入されることがあります。
「3分ハッキング」という書籍を参考にしながら一緒に学んでいきましょう。
あらすじ
「3分ハッキング」では新入社員の「しょーじ君」がハッキング技術を一から学んでいくストーリーです。
ハッキングツールを入手したり、会社がハッキングされたり、最後には自分が、、、などいろいろな展開があります。
実際に手を動かしながら学べるようにもできています。
わたしも同じ流れで学んでいこうと思います。
本自体は2時間ほどで読みあわるボリュームでした。
ストーリー形式だったので楽しく読めましたよ♪
「しょーじくん」含め、登場人物みんなのIT知識はとても高かったですが(笑
SQLインジェクション
SQLインジェクションなら、パスワードが分からなくてもデータを盗むことができます。
人気の手法でサイバー攻撃の7割はSOLインジェクションです。
データベースを操作するためのSQL言語に工夫することで、データベースの設定不備や不具合を突いて
不正操作をすることができます。
準備
VirtualBoxを起動します。
Metasploitable2を起動します。
ユーザー名とパスワードはmsfadminです。
※Metasploitable2のインストール方法
https://tumaboki.com/sec-2/1501/
※VirtualBoxのインストール方法

ifconfigを入力して、inet addr:と書かれた場所からIPアドレスを確認します。
IPアドレスをもとに、ブラウザからhttp://192.168.1.18/mutillidae/を開きます。
※192.168.1.18は、確認したIPアドレスを入力してください。
すると、蟻のロゴと「Mutillidae: Born to be Hacked」の画面が表示されます。

ここにSQLインジェクションを用いてログインしていきます。
実践
http;//192.168.1.18/mutillidae/index.php?page=login.phpを開きます。
※192.168.1.18は、確認したIPアドレスを入力してください。

「Name」のボックスにadmin、「Password」のボックスにpasswordと入力して「login」をクリックします。

ログイン名とパスワードが違うのでログインできません。
では、SQLインジェクションを試してみましょう!
「NAME」ボックスに「’ or 1=1 –」と入力すれば完了です。

ログインボタンを押せばログインできるはずです。
理論
データベースを操作するSQL言語を悪用しています。
Webサイトから「あなたの名前は?」とユーザー名を聞かれます。
ハッカーは「’ or 1=1 –」と入力して「1とはすなわち1のことですよね。正しいなら私へのログインを許可してください」と返答します。
するとWebサイトは「たしかに、1とは1のことです。お通りください!」とログインを許可してしまいます。
この攻撃を防ぐには、データベースにこのようなやり取りを受け入れてはならないと「設定」する必要があります。
まとめ
SQLインジェクションはデータベースを扱うSQL言語を悪用します。
ユーザー名やパスワードがわからなくても侵入できます。
データベースに設定することで防ぐことができます。
一緒に一歩踏み出しましょう♪
では♪
コメント