Burp Suiteの利用
Webアプリケーションにおいて攻撃者が意図しないファイルを読み込むことができると、機密情報の漏洩やサーバーの不正操作が可能になります。
File Inclusionとは
File Inclusion(ファイルインクルージョン)は、Webアプリケーションのファイルのセキュリティ上の問題の一つです。
特定のファイルが許可されていない方法で参照することが可能になります。
これには、以下の二つの方法があります。
ローカルファイルインクルージョン(LFI)
ローカルファイルインクルージョンは、攻撃者がサーバー上にあるローカルファイル(サーバー自体に保存されているファイル)を読み込むことを意味します。
例えば、サーバーの設定ファイルやユーザーデータなどがこれに該当します。攻撃者はこれを利用して機密情報を盗んだり、不正な操作を行ったりします。
リモートファイルインクルージョン(RFI)
リモートファイルインクルージョンは、攻撃者が外部のリモートサーバーにあるファイルを読み込むことを意味します。これにより、攻撃者は自分のサーバー上にある悪意のあるスクリプトをターゲットのサーバーに読み込ませることができます。これによって、ターゲットのサーバーを乗っ取ったり、不正なプログラムを実行させたりします。
たとえば、ローカルファイルインクルージョンの例では
a.WebサイトのURLに以下のような部分が含まれているとします。
b.「red_file」というパラメータに指定したファイルを読み込むような仕組みになっていると、攻撃者が以下のようにパラメータを書き換えることで、サーバー上の他のファイルや外部のファイルを読み込むことが可能になります。
このようにして、攻撃者は本来アクセスできないファイルの内容を確認することができます。
File Inclusionの脆弱性を見つけるためのテスト環境について
「やられサーバー」と「Burp Suite」の環境が無い方は、こちらをご覧ください。
・やられサーバーを作成される方は、こちらをご覧ください。
・WindowsにBurp Suiteをインストールされる方は、こちらをご覧ください。
セキュリティLow(低)レベルでのFile Inclusionの脆弱性確認方法
この確認では、LinuxなどのOSに格納されているパスワードファイルを参照するストーリーです。
但し、実際のファイルではなく、テストで作成したパスワードファイル(pass.txt)を参照します。
0.確認の前の準備
※注意
確認時に「File Inclusion」のページで「The PHP function allow_url_include is not enabled.」のエラーメッセージが表示された場合は、XAMPPのApachで起動しているPHPの関数 “allow_url_include"が有効になっていません。(OFFになっています。)
そのため、"allow_url_include"を"ON"にする必要があります。
※確認方法
a.XAMPP(XAMPPのControl Panel)を立ち上げます。
このとき、「Apach」のActionが「Stop」になっていれば、「stop」ボタンを押下して「start」の状態にします。(Apachの動作を止めます。)
b.次に「Config」ボタンを押下して、「PHP(php.ini)」を選択します。
c.開いた「php.ini」から"allow_url_include"を検索します。
現状
“allow_url_include=OFF" になっています。
これを
“allow_url_include=ON" に変更して保存してください。
1.XAMPP(XAMPPのControl Panel)を起動します。
2.Burp Suiteを起動します。
3.「Proxy」タブから「Intercept」サブタブより、画面中ほどの「Open browser」ボタンを押下します。
4.ブラウザのアドレス欄に"localhost/dvwa/login.php"を入力して、「DVWAのサイト」を立ち上げ
Username:admin
Password:password
でログインします。
5.DVWAのサイトメニューの「DVWA Security」で、セキュリティを"Low"に変更します。
このセキュリティレベルLowは完全に脆弱であり、一切のセキュリティ対策がありません。
6.DVWAのサイドメニューの「File Inclusion」をクリックして、「File Inclusion」のページに移動します。
7.ファイルの選択ボタンより、「file1.php」のボタンを押下します。
8.指定したファイルの内容が表示されました。
※表示を確認した後に、「back」ボタンを押下してファイルの選択画面に戻ってください。
9.確認するためのテストデータ(パスワードファイル)として"C:\xampp\htdocs\dvwa“のフォルダに"password“のフォルダを作成して、"pass.txt“のファイルを追加します。
C:\xampp\htdocs\dvwa\password\pass.txt
pass.txtのファイルの内容は
“pass ok"です。
10.「Burp Suite」の画面で、「Proxy」タブから「Intercept」サブタブを選択して、「Intercept is off」ボタンを押下して、「Intercept is on」に変更します。
11.もう一度、「file1.php」のボタンを押下します。
12.「Burp Suite」の画面で、「Proxy」タブから「Intercept」サブタブでサーバーに送信する前のリクエスト情報が表示されます。
13.ここで、本来表示されては困るファイルの情報を設定します。
一行目の"GET /dvwa/vulnerabilities/fi/?page=file1.php HTTP/1.1″の"?page=file1.php“を
“?page=../../password/pass.txt“に変更します。
14.「Forward」ボタンを押下して、処理を進めます。
15.ブラウザを参照すると左上に「pass.txt」の内容が表示されました。
なぜ、ハッカーはBurp Suiteを利用するのですか?(7) File Inclusion(ファイルインクルージョン)の脆弱性を発見する方法の操作のまとめ
フォルダの位置を操作して、ファイルの内容が参照できると「File Inclusion」の脆弱性があることになります。
実際には、どのOSが使われていて、参照したいファイルがどこに有るのか事前に調べておく必要がありますね。
あとは「/..」を利用して、ファイルの位置を正確につかむ操作が必要になります。
File Inclusionの脆弱性は、機密情報を盗み出したり、サーバーの設定ファイルを不正に取得などの攻撃が可能になるのですね。
今回は、burp suiteを利用しなくても確認できたのですが、あえて練習の為に利用しました。