bWAPP に対して PHP のコードインジェクションを行う

WEBアプリケーション

この記事では、bWAPP に存在する PHP の脆弱性を突いたコードインジェクションを実際に行う方法を紹介します。

なお、以下の環境でハッキングを行います。

役割端末IP アドレス
攻撃端末Kali linux10.0.0.103
ターゲット端末bee-box (bWAPP)10.0.0.105

bWAPP のインストールについては以下記事をご覧ください。

bWAPP にログインする

Kali で Firefox を起動し URL 部に「http://10.0.0.105/bWAPP」を入力し、 bWAPP にアクセスします。

bWAPP のログインページが開くので以下の通り入力し、ログインします。

Login: bee
Password: bug
Set the security level: low

PHP Code Injection ページを表示する

以下の画像のように「Choose your bug:」箇所から”PHP Code Injection”を選択し Hack をクリックします。

クリック後以下のページが表示されます。
このページでコードインジェクションを行います。

PHP のコードインジェクションを行う

まずはこのページがどういった挙動をするか把握します。
「message…」部がリンクとなっているため、クリックしてみましょう。

すると以下の画像のように「test」と表示されました。

併せて URL 部を見てみましょう。
以下のように末尾が「message=test」となっており、=以降の文字列がページ上に反映されていることが推測できます。

試しに test を hello に変えてみましょう。
すると以下のように、ページ上には hello と表示されました。

この挙動から、message= 以降の文字列が WEB ページ上に表示されるコードであると判断して良さそうです。

URL 部を直接編集することで任意の文字列を WEB ページ上に表示させられることはわかりました。
それでは PHP 関数を URL 部に打ち込むとどういった挙動をするでしょうか。試してみます。

message= の後を、phpinfo() に変更してアクセスします。
すると、以下のように phpinfo() の出力結果が WEB ページに埋め込まれた状態で表示されました。

「phpinfo()」という文字列が表示されるのではなく、PHP 関数の実行結果が表示されたため、他の PHP 関数を WEB ページ上に表示させることが可能だということがわかります。

PHP 関数には 「system()」という引数(括弧内の値)に指定したコマンドを実行する関数が存在します。
この関数を用いることで、ターゲット端末である bee-box のコマンド出力結果を WEB ページ上に表示させることができます。

例えば、message= 以降に system(‘cat /proc/version’)と入力すれば bee-box の Linux バージョンを WEB ページ上に出力させることが可能です。

パスワード情報も取得できるか試してみましょう。
message= 以降に system(‘cat /etc/shadow’)と入力してアクセスします。

しかし出力結果は表示されませんでした。
権限の問題で機密性の高いファイルは確認ができないようです。

その他コマンドでは「whoami」や「hostname」は実行結果が WEB ページに表示されましたが、「ifconfig」は実行結果が表示されませんでした。

以上で PHP の脆弱性を突いたコードインジェクションは終了です。
URL 部を直接編集されることで、WEB アプリケーション側が意図しない動作を行う可能性があることを知れました。

くどり

この記事は「ハッキング・ラボのつくりかた 第7章 」をベースに作成しています。購入リンクは以下です。
※Amazonアソシエイトを使用しています。

コメント

タイトルとURLをコピーしました