0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【ハッキング・ラボ⑮】Webアプリをハッキングする~DVWA~

Last updated at Posted at 2021-08-13

Webアプリに対して、ハッキングをしていきます。

使用するのはDVWA(Damn Valunerable Web App)です。
DVWAは脆弱性のあるWebアプリの1つで、PHP、MySQLで構築されています。


まとめ記事(①〜⑯をまとめてます)
【ハッキング・ラボのつくりかた】をやってみた

システム環境

仮想化ソフト:VirtualBox 6.1.0
ホストOS:Windows10
ゲストOS1:Kali Linux 2020.1
ゲストOS2:Windows7
ゲストOS3:Windows10
ゲストOS4:Metasploitable

DVWAのインストール

まず、DVWAをKali Linuxにダウンロードします。

以下のコマンドで、/rootディレクトリに移動し、解凍します。

# cp ダウンロードしたディレクトリ/DVWA-master.zip /root
# unzip DVWA-master.zip

Webサーバとして公開するため、ファイルを移動し、権限を変更します。

# cp -Rv /root/DVWA-master /var/www/html/
# chmod -Rv 777 /var/www/html/DVWA-master/

configファイルを正しいファイル名に修正します。

# cd /var/www/html/DVWA-master/config
# mv config.inc.php.dist config.inc.php

ApacheとMySQLを起動します。

# cd
# service apache2 start
# service mysql start

MySQLに接続して、DB接続用のアカウントを登録します。
ここでは、IDはnakatatsu、パスワードはpasswordとしました。

# mysql -u root -p
use mysql
GRANT ALL PRIVILEGES ON *.* 'nakatatsu'@'localhost' IDENTIFIED BY 'password';

以上を入力したら、Ctr+cキーで終了した後、mysqlを再起動します。

# service mysql restart

MySQLに接続できるようにするために、config.inc.phpファイルを編集します。

# vi /var/www/html/DVWA-master/config/config.inc.php
config.inc.php(編集前)
$_DVWA['db_server'] = '127.0.0.1';
$_DVWA['db_database'] = 'dvwa';
$_DVWA['db_user'] = 'dvwa';
$_DVWA['db_password'] = 'p@assw0rd';
config.inc.php(編集後)
$_DVWA['db_server'] = '127.0.0.1';
$_DVWA['db_database'] = 'dvwa';
$_DVWA['db_user'] = 'nakatatsu';
$_DVWA['db_password'] = 'password';

「Database Setup」画面にて、「Create / Reset Database」ボタンを押し、DVWAのデータベースを作成します。

最後に、Firefoxを起動して、http://localhost/DVWA-master/login.phpにアクセスします。
Usernameにadmin、Passwordにpasswordを入力して、ログインします。

以上でDVWAのインストールは完了です。

SQLインジェクション

SQLインジェクションとは、Webアプリが想定しないSQLを実行させて、DBを不正に操作する攻撃です。

「DVWA Security」を押して、セキュリティレベルをLowにし、「Submit」ボタンを押します。

最初に、SQLインジェクションを体験してみます。
メニューから「SQL Injection」を選びます。

「User ID」の入力欄に以下を入力してみます。
これは単純なSQLインジェクションのコードです。

1’ OR ‘a’=‘a

すると、次のような結果が得られ、単純なSQLインジェクションに対する脆弱性があることがわかります。
hacking-lab-part15-1

次に、DVWAが用いているカラムを特定します。
データベース名はdvwa、テーブル名はusersです。

' union select table_name, column_name from information_schema.columns where table_schema = 'dvwa' and table_name = 'users' #

すると、次のような結果が得られ、usersテーブルのカラム名がすべて判明しました。
hacking-lab-part15-2

passwordというカラムがありますので、ここにパスワードが格納されていると推測できます。
そこで、以下を入力してみます。

' union select user, password from dvwa.users #

出力結果より、passwordに格納されているデータは、「パスワードのMD5ハッシュ値」と推測できます。
hacking-lab-part15-3

このMD5ハッシュ値を解析します。
ここでは、MD5 Onlineを使用します。

ユーザー名がgordonbのものを解析してみます。
パスワードはabc123とわかりました。
hacking-lab-part15-4

ユーザー名がadmin、smithyはMD5ハッシュ値が同じなのですが、こちらは以下のようなエラーが出て、解析することはできませんでした。
hacking-lab-part15-5

一旦ログアウトして、再度http://localhost/DVWA-master/にアクセスします。
解析できたgordonbでログインを試みます。
ログインに成功しました。
hacking-lab-part15-6

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?