ディレクトリトラバーサル
Webアプリケーションなどの脆弱性を突いて、本来はアクセスできないディレクトリ(ファイル)に不正アクセスすること。
脆弱性の突き方
http://example.com
というwebがあったとします。
webを立ち上げたことがある人は理解していると思いますが、URLはディレクトリと同じ構造になっています。
例えば、http://example.com/img
やhttp://example.com/users
など、そのディレクトリが存在していればアクセスすることができます。
しかし、それらのディレクトリが存在するかどうかはわかりません。ここで、代表的な辞書攻撃を紹介します。
GoBuster
用途は様々ありますが、今回はディレクトリを探す方法を記載します。
gobuster dir -u http://example.com/ -w /usr/share/wordlists/dirb/common.txt
これは、http://example.com/
の直下にwordlistsをあてはめ、存在するディレクトリを探します。
詳しく知りたい方は、調べてください。沢山情報が出てきます。
もしここにユーザアカウント情報が格納されているディレクトリが存在すれば危険ですね。
他にも、自ら脆弱性を生み出す手法も存在します。
アップロードを悪用
例えば、http://example.com
でファイルをアップロードでき、そのファイルはサニタイズされていないとします。
また、hogehoge.png
をアップロードしたとき、http://example.com/data/hogehoge.png
のように保存されるとします。
hogehoge.png
をアップロードしただけでは、何も起こりません。
しかし、その場で実行可能なファイルを作り、アップロード出来るしたらどうでしょうか。
hogehoge.php
<?php
echo "<pre>";
system("sudo ls -a /root");
echo "</pre>";
?>
正直な話、OSコマンドを操作できる権限をユーザに付与していることはめったにありませんが、条件が揃えば、上記のようなコマンドを実行できてしまいます。
メインとなるのは、system("sudo ls -a /root")
です。
Linuxなどでおなじみのlsコマンドです。上記は/root
にあるファイルを一覧できます。
-a は.himitu.txt
のような隠しファイルを表示させるためのオプションです。
system("sudo cat /root/.himitu.txt")
とすれば、.himitu.txt
の内容を表示することができます。
まとめ
webアプリケーションの脆弱性を突いた攻撃の紹介でした。
悪用禁止でs