月間1万PV達成目前! 収益は毎日発生中! ブログランキング上位! 記事は毎日更新中! ギランバレー症候群に関する情報を集めています

やばくない?!hiddenパラメータを書き換えてみた!

  • 2018.07.30
  • IT
やばくない?!hiddenパラメータを書き換えてみた!
Advertisement

 

さて、前回はHTTPの基本を理解しました。

 

今回は、実際に画面からパラメータを送信しリクエスト・レスポンスを覗いてみようと思いますが、ここで問題になるのがhiddenです。

hiddenはよく隠し項目として画面に保持するために使用しますが、実はこのhiddenパラメータは書き換えが可能です。hiddenパラメータの書き換えを体験することで、セキュリティを身近に感じることができると思うので一緒に勉強していきましょう。

※決して悪用したいわけではありません。セキュリティの理解を深めるためにやっています。

 

 

hiddenパラメータの書き換えをするための環境

hiddenパラメータを書き換えるために、「OWASP ZAP」というツールを利用します。

「OWASP ZAP」の使い方はここでは解説しません。あくまで、hiddenパラメータの書き換えを身近に感じてもらうための利用するだけですので。

 

 

hiddenパラメータの書き換え

入力画面

上のような画面があるとします。

 

 

入力画面(入力後)

画面に値を入力します。

 

 

確認画面

確認画面です。さて、この確認画面ですが、実際のソースコードは以下のようになっています。

※ソースコードは、「右クリック」⇒「ページのソースを表示」から見ることができます。

 

 

確認画面(ソースコード)

このソースコードに「hidden」と記載のある箇所があります。

これがいわゆるhiddenパラメータです。実際に送信される値を隠し項目として画面に保持していることになります。

今からやることは、このhiddenパラメータをWebサーバに送信される途中で、「OWASP ZAP」内でいったん処理を掴み、パラメータを変更し、Webサーバに送信するというものです。

 

 

OWASP ZAP(ブレークポイント)

画面の登録ボタンを押す前に、「OWASP ZAP」のブレークポイント設定を行います。

これにより、「OWASP ZAP」内でいったん処理を掴むことができます。

 

 

hiddenパラメータ

処理を掴んだ後のパラメータの内容です。

画面から渡されたhiddenパラメータの値が表示されていますね。

※日本語が文字化けしていますが、これは「OWASP ZAP」のバグです。

 

 

hiddenパラメータ書き換え

次に、このhiddenパラメータの値を変更します。

 

 

OWASP ZAP(ブレークポイント実行)

中断していた処理を実行します。

 

 

登録後画面

すると、登録内容が田中さんになっていますね。

画面からはいずみんで送信しましたが、「OWASP ZAP」で処理を中断し、hiddenパラメータの内容を書き換えることで、このような結果になったわけです。

ブラウザから送信する値はユーザが書き換え可能です。

 

 

Advertisement

 

hiddenパラメータのメリットとは

さて、hiddenパラメータは「OWASP ZAP」などのツールを使うことで書き換えが可能ということは理解できました。

では、このhiddenパラメータのメリットは何でしょうか?

 

情報漏洩や第3者からの書き換えに対しては堅牢

hiddenは利用者からの書き換えはできますが、それ以外からの書き換えに対しては堅牢です。

逆にセッション変数やクッキーなどはセッションIDの固定化攻撃に弱いことがあります。

つまり、利用者自身によっても書き換えられては困る認証や認可に関する情報はセッション変数に保存すべきですが、それ以外はhiddenパラメータに保存する方が良いことになります

 

 

まとめ

hiddenパラメータは個人的にセキュリティ観点から見てあまりよろしくないと思っていましたが、他の手法をとっても欠点はあるわけで、それぞれ一長一短がありますね。

それぞれのメリット・デメリットをしっかり理解しておけばよさそうですが、hiddenパラメータ自体は悪いものではないということが理解できたので収穫でした。

また、今回はhiddenパラメータの書き換えを実際に行えたので勉強になりました。やはり実際に動かして体験するのは違いますね。

 

 

おすすめ本

僕がセキュリティの勉強をする際に購入した本になります。

この本があれば、セキュリティの基礎は理解できるのでおすすめですよ!

 

Travelerを知らないの?