Webセキュリティの小部屋

Twitter のフォローはこちらから Facebook ページはこちら Google+ページはこちら RSSフィードのご登録はこちらから
公開日:2013年8月10日

Fiddler でリクエストパラメーターを改ざんする方法

Fiddler を使用するとリクエストパラメーターを簡単に改ざんすることができます。具体的なアプリケーションで Fiddler を使用して簡単さを感じてみましょう。

具体的なアプリケーション

今回は、PHP で以下の画面遷移をする Web アプリケーションを作成します。入力画面→確認画面→Welcome 画面といった簡単なものです。注意点は、確認画面で HIDDEN フィールドに入力した名前を非表示で持っているところです。

Fiddler

PHP のソースコード

・input.php

・confirm.php

・welcome.php

入力値パラメーターの改ざん

まずは、通常通りに Fiddler を使ってリクエストの内容を確認しましょう。ブラウザで入力画面を表示して、Fiddler を起動します。そして名前を「yamada」と入力して「送信」ボタンをクリックします。すると、以下の画面が表示されます。

pic01

ここで Fiddler を見てみましょう。リクエスト内容の下の方に、「name=yamada」と記述されているところがあります。ここがリクエスト送信された値の内容になります。

pic02

今度は、入力画面を表示してから、Fiddler で次のように設定してみましょう。ツールバーの Rules > Automatic Breakpoints > Before Requests を選択します。

pic03

 

この状態で、入力画面で名前を「yamada」と入力して「送信」ボタンをクリックします。すると、Fiddler が以下のように表示され、リクエストが途中でブレーク(中断)されます。

pic04

ここでリクエストパラメーターの「name=yamada」となっている場所を、「name=sato」と書き換えて「Run to Completion」ボタンをクリックします。すると、以下のように確認画面が表示されるので、パラメーターの改ざんが成功したことが分かります。簡単ですね。

pic05

HIDDEN パラメーターを改ざんする

HIDDEN フィールドに格納されたパラメーターは、ユーザーには見えないので安全だと思っている人はいないでしょうか。実は、HIDDEN パラメーターも普通のパラメーターと同じように簡単に改ざんされてしまいます。具体的に見てみましょう。

入力画面で名前を「yamada」と入力し、確認画面で「登録」ボタンをクリックすると以下の画面が表示されます。名前は、確認画面の HIDDEN フィールドに格納されていたものです。

pic06

先程は、入力画面表示時に Fiddler のブレークポイント設定をしましたが、今度は確認画面表示時にブレークポイント設定をしてください。そうすると、ブレークされて以下のようにリクエスト内容が表示されます。

pic07

HIDDEN フィールドだったのに、通常のフィールドと同じように表示されていますね。これは同じように改ざん可能だということです。「name=yamada」を「name=sato」に書き換えて、「Run to Completion」ボタンをクリックしてみましょう。

すると、以下のように Welcome 画面が表示されるので、改ざんが成功したことが分かります。HIDDEN フィールドだからといって安全ではないということですね。

pic08

おわりに

Fiddler を利用するとリクエストパラメーターを簡単に改ざんできることが分かったと思います。HIDDEN フィールドも安全ではありません。

今回は、Fiddler というツールを用いてリクエストパラメーターの改ざんを行いましたが、ツールを使わない方法や、別のツールもあるので HTTP のリクエストパラメーターは改ざん可能であることを前提として Web アプリケーションを構築する必要があります。

特に、ユーザーに改ざんされて困る情報、例えばショッピングサイトの価格などはブラウザにパラメーターを持つのではなく、サーバーにパラメーターを保存して安全に処理してください。

この記事が Web アプリケーションを安全に構築するきっかけになれば幸いです。


スポンサーリンク




カテゴリー:ツール

Twitter でも、いろんな情報を発信しています。



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA