今回はヤラレ役DVWAサーバの挙動を、プロキシツールの “Burp suite” を用いて調べます。
右のラズパイ4Bを “ヤラレ” サーバに仕立てて、これを左のラズパイ5から攻撃しています。
DVWAサーバのセットアップ
ブラウザで、”http://192.168.11.21/DVWA/setup.php” にアクセスします。


下部にある、 “Create / Reset Database” ボタンをクリックします。
これは前回投稿で作成したmariadb上のdvwaデータベース上に、DVWAが使用するテーブルなどを作成する操作です。
ログイン画面
作成に成功すると、ログイン画面に遷移します。

Usernameに “admin”, Passwordに “password” を入力してログインします。
上図の例では、画面にはwordpressログイン用のユーザ名とパスワードが自動入力されていますが、これは無視して下さい。
3つのIDとパスワード
上記のユーザ名とパスワードは、前稿で作成したものと異なります。
| 使用する場面 | username | password |
|---|---|---|
| mariadb上のwordpress用のDBへwordpressが接続する時 | wordpress設定時に設定したユーザ名(wpuser) | wordpress設定時に設定したパスワード |
| mariadb上のdvwa用のDBへdvwaが接続する時 | 前回投稿で設定したユーザ名(dvwa) | 前回投稿で設定したパスワード |
| DVWA webアプリへブラウザからログインする時 | admin | password |
使用するのはDVWAにログインする際のユーザ名とパスワードです。ここではデフォルトをそのまま使用します。
セキュリティレベルの設定
最初は左下の “Security Level:” が “Impossible” となっています。

左列の下から4番目ボタン “DVWA Security” からレベルの変更を行います。
右欄Security levelからプルダウンメニュ0で選択し、 “Submit” ボタンクリックで確定させます。
| Security Level | レベル |
|---|---|
| Low | 甘い |
| Medium | 中間 |
| High | 硬い |
| Impossible | 最強 |
下図ではセキュリティ最弱の “Low” に設定しています。

左下、下から3行目のSecurity Level: Security Level: が、 “Low” になっています。
Brute Force 演習
左列4番目 “Brute Force” から下に、脆弱性演習メニューがズラリと並んでいます。
これをkaliの攻撃ツール(脆弱性検査ツール)で攻撃(検査)する訳です。
今回は1例としてBrute Forceを取り上げます。
左列の4番目の “Brute Force” 演習をクリックします。

ログイン場面が表示されます。
ソースコード表示
右下の “View Source” ボタンをクリックすると、PHPのソースが表示されます。

burp suiteによるログイン過程のモニター
burp suiteを立ち上げ、上部のtargetタブからログイン時のhttp通信内容を表示します。
正しいパスワードでログイン成功した場合
Request
サーバへの要求

Response
サーバからの応答

ログイン成功画面

ログインに失敗した場合
Request
サーバへの要求

Response
サーバからの応答

ログイン失敗画面

Repeaterによるhttpレクエストの再送
burp suiteでは、サーバへのhttpリクエストを改変して再送することができます。

再送したいhttpリクエストを右クリックして、 “send to repeater” を選択します。

1行目の “password=abcdef” を “password=password” と正しいパスワードに改変して、左上の “Send” ボタンをクリックすると、改変されたhttpリクエストがサーバに送られてログインに成功します。

ブラウザではログイン成功画面には変わりませんが、burp suiteからのログインには成功しています。
Burp suiteではアプリ内での出力結果保存は無料版(Community Edition)では出来ません。
保存が出来る有料版(Professional)は$499/yearです。
まとめ
今回はDVWAサーバのセットアップからセキュリティレベルの設定を行いました。
セキュリティレベル設定を、Low ➡️ Medium ➡️ High ➡️ Impossibleと変更することによりサーバとツールの挙動の変化を観察できます。
続いてBrute force演習におけるburp suiteを用いたhttp通信の観察を行いました。
そしてburpsuiteのrepeater機能によるhttpリクエスト送信について取り上げました。
参考)DVWAの演習メニュー
DVWAには本稿で取り上げたbrute force以外にも多くのメニューがあります。
| ニュー名 | 内容 |
|---|---|
| Brute Force | パスワード候補を繰り返し試し、認証を突破できる問題 |
| Command Injection | 入力値を悪用し、サーバー上でOSコマンドが実行される脆弱性 |
| CSRF | ログイン中のユーザーに意図しない操作を実行させる攻撃 |
| File Inclusion | 外部から指定したファイルなどをPHPプログラムに読み込ませる脆弱性 |
| File Upload | 不適切なアップロード制御によって、危険なファイルが配置される問題 |
| Insecure CAPTCHA | CAPTCHAによる本人確認や操作確認の仕組みを回避できる問題 |
| SQL Injection | 入力値を悪用し、データベースへのSQL文を不正に操作する脆弱性 |
| SQL Injection (Blind) | 直接的な検索結果が表示されなくても、応答の違いなどからデータベース情報を推測する攻撃 |
| Weak Session IDs | 推測可能なセッションIDによって、セッションの安全性が損なわれる問題 |
| XSS (DOM) | DOMベースXSS:ブラウザー側のJavaScript処理に起因するXSS |
| XSS (Reflected) | 反射型XSS:リクエストに含まれる入力値が、適切に処理されず応答に反映される脆弱性 |
| XSS (Stored) | 格納型XSS:データベースなどに保存された不正なスクリプトが、閲覧者のブラウザーで実行される脆弱性 |
| CSP Bypass | Content Security Policy(コンテンツセキュリティポリシー)の制限を回避できる問題 |
| JavaScript attacks | クライアント側のJavaScriptによる入力検証や処理の仕組みを学ぶ |
| Authorisation Bypass | 本来アクセス権限のないユーザーが、制限された機能や情報にアクセスできてしまう問題 |
| Open HTTP Redirect | Webサイトのリダイレクト機能を悪用し、利用者を意図しない外部サイトへ誘導する問題 |
| Cryptography | 暗号化や復号、鍵の扱い、暗号方式の選択など、暗号技術に関係する問題を学ぶ |
| API | APIへのリクエストやレスポンスを観察し、APIの機能やセキュリティ上の問題を学ぶ |
<PR>

コメント