バグハンターが利用するアプリ「Burp Suite」を徹底的に使いこなす。パート3 Burp SuiteでProxy機能を動かしてみる

ペネトレーションテスト&バグバウンティBurp Suite,proxy

先日リリースした、パート1とパート2で、テスト環境とBurp Suiteをウインドウズにインストールしました。
 
まだの方は、こちらをご覧ください。
  1. バグハンターが利用するアプリ「Burp Suite」を徹底的に使いこなす。パート1 windowsにXAMPPと、やられサーバーのテスト環境を構築する
  2. バグハンターが利用するアプリ「Burp Suite」を徹底的に使いこなす。パート2 windowsにBurp Suiteをインストール
パート3では、ローカルプロキシツールとして実際にHTTP(Hypertext Transfer Protocom)を使い、WEBサーバと、パソコンにインストールしたBurp Suiteのブラウザ間でのデータのやり取りをProxyの機能を用いて確認します。

ローカルプロキシー(Burp Suite)とは

クライアントパソコンのソフトウェアとして、ローカルプロキシー(Burp Suite)を使用します。
 
通常のクライアントパソコンとWEBサーバーの通信の場合
 
ローカルプロキシー(Burp Suite)を使ったクライアントパソコンとWEBサーバーの通信(イメージです。)
クライアントパソコンとWEBサーバー間、WEBサーバーとクライアントパソコン間に入り、通信内容を確認、変更できます。
イレギュラーな通信内容をWEBサーバーに送信して、不具合が起きるか確認も出来ます。
 
 

Burp Suiteを利用して、WEBサーバーとクライアントパソコンの通信内容を確認します。

確認準備

1.XAMPPを起動します。
 
2.XAMPPのコントロールパネルが開きます。
 
3.ApachとMySQLの「Actions」の「Start」ボタンを押下します。
※ボタン押下後は「Stop」に表示が変わっています。
 

Burp Suiteの起動

1.Burp Suiteを起動します。
 
2.Burp Suite起動中です。
 
3.「Welcome to Burp Suite community Edtion, Use the options below to create or open a project」の画面で「Next」ボタンを押下します。
 
4.「Select the configuration that you would like to load for this project」画面で「Start Burp」ボタンを押下します。
 
5.指定された内容で起動しています。
 
6.Burp Suiteが立ち上がりました。
 

Burp Suiteのキャプチャ設定

Burp Suiteでレスポンス内容をキャプチャする設定です。
 
「Proxy」タブ内にある「Proxy settings」ボタンを押下して、画面中ほどにある「Intercept responses based on the following rules」のチェックボックスにチェックを入れます。
 

通信内容を確認します。

1.「Proxy」タブから「Intercept」タブをクリックします。
 
2.「Intercept is off」ボタンを押下します。
「Intercept is on」に変わります。
クライアントパソコンとWEBサーバーの間に、Burp Suiteが割り込み、クライアントパソコンの通信内容が確認できる状態になります。
(※ちなみに、「Intercept is on」のボタンを押下して、「Intercept is off」のボタンに変更するとBurp Suiteの割り込みは無くなります。)
ここで、監視します。
※注意 実際にはクラアインとパソコンのwebブラウザで確認するのではなく、Burp Suiteアプリに設定されているブラウザで確認しています。
 
3.次に「Open browser」ボタンを押下して、Burp Suite用のブラウザを立ち上げます。
「Burp Suite」のページが表示されました。
 
4.テスト環境で作成した「やられサーバー」のDVWAを起動します。
Burp Suite用のブラウザのアドレス欄に
http://localhost/dvwa/login.php
を入力してエンターボタンを押下します。
(※Burp Suiteのログイン画面のアドレスです。)
 
5.まず、webサーバーにアクセスする前にBurp Suiteが割り込んでいるため、タブの「Burp Suite」の文字の前にある〇が回転しています。(webサーバーにアクセス中の状態です。)
今は、赤矢印の「リクエスト」まで進みました。
 
6.Burp Suiteの画面を見ると、webサーバーに送信する「通信情報」が表示されています。(この情報をリクエストメッセージといいます。)
これらの情報をサーバに送ることになります。
一行目は、リクエストラインといい
GET /dvwa/login.php HTTP/1.1 は
リクエストのURLが「/dvwa/login.php」
プロトコルのバージョンが「HTTP/1.1」と言うことです。
 
二行目以降は、HTTPヘッダーといい
Host: localhost
ホストがローカルホストと言うことです。
 
7.次に「Forward」ボタンを押下して、情報をWEBサーバーに送信します。
 
8.「Forward」を押下すると、情報がWEBサーバーに送信され、WEBサーバーが上記のリクエストを受けて処理が行われ、以下のようなレスポンスをクライアントパソコンに送信されます。
Burp Suiteが監視をしているので、WEBサーバーから送信されたレスポンスの情報が画面に表示されます。
一行目はレスポンス行で
プロトコルのバージョンが、HTTP/1.1
ステータスコードが、200 OK (リクエストが成功)
 
二行目以降は、HTTPヘッダーで、ファイルの更新日やサイズなどの情報が設定されています。
二行目の途中に空白が有り、それ以降はメッセージボディーで、画面に表示するHTMLの内容が設定されます。
 
9.また、「Forward」を押下すると、情報がBurp Suiteからクライアントパソコンに送信されます。
パソコンのブラウザに、サーバの処理内容(HTML)が表示されます。
 
Burp Suiteを利用して、クライアントパソコン、WEBサーバー間の情報のやり取りが確認できました。
 
 

ログインの情報を見て見ましょう

1.引き続き、「DVWA」のログインをしてみましょう。
Usernameに「admin」
Passwordに「password」
を入力して「Login」ボタンを押下します。
 
2.Burp Suiteの画面を見ると、一番下の行にログインの情報が表示されています。
DVWAサーバーはやられサーバーなので、ユーザー名とパスワードは簡単に見えるようになっています。
 
あとは、ご自分で「Forward」ボタンを押下して、情報の流れを確認してください。
 

バグハンターが利用するアプリ「Burp Suite」を徹底的に使いこなす。パート3 Burp SuiteでProxy機能を動かしてみるのまとめ

プロキシーの使い方としては、リクエストメッセージを任意に書き換えてWEBサーバーに送信して、動作を見るのですね。
 
通常では、送信できないリクエストメッセージを送り、WEBサーバーが処理したレスポンスメッセージを確認するこにより、脆弱性を探すのだと考えます。