Shikata Ga Nai

Private? There is no such things.

WebGOATでMFLACを演習してみた

 

Hello there, ('ω')ノ 

 

WebGOATのMissing Function Level Access Controlの②を選択して。 

下記は、UIが公開していない機能を見つけるためのヒントで。

 HTMLまたはJavaScriptのコメント

 要素をコメント化

 CSSコントロール/クラスによって非表示にされたアイテム

 

攻撃者や悪意のあるユーザが興味のある2つのメニュー項目を見つけよとのことで。

ソースコードを見ていくとパスと項目名らしきものが。

 Users

 Config

 

f:id:ThisIsOne:20200710142959p:plain

 

次に⓷を選択して。

前のページで項目を見つけたら何が起こるかを確認してくださいとのことで。

 http://192.168.49.40:8000/WebGoat/users

 

f:id:ThisIsOne:20200711115720p:plain

 

ちなみに別のタグで、ユーザ登録をしてログインしてみると。

 

f:id:ThisIsOne:20200711121217p:plain

 

下記のように2Usersに表示が変わって。

 

f:id:ThisIsOne:20200711121425p:plain

 

もう一つの項目のパスを試してみるとエラーが表示されて。

 http://192.168.49.40:8000/WebGoat/config

 

f:id:ThisIsOne:20200711115836p:plain

 

ユーザ情報を収集するには。

SQLインジェクションなどの脆弱性からデータがダンプされますが。

アクセス制御が不十分であるか、アクセス制御が不足していることも原因だったり。 

ということで課題のテーマからアクセス制御が不足している機能を見つけることで。

さきほどのURLを指定して。

 http://192.168.49.40:8000/WebGoat/users

 

f:id:ThisIsOne:20200710160814p:plain

 

右クリックで、Repeaterを選択して。

 

f:id:ThisIsOne:20200711122620p:plain

 

GOボタンを押すと。

本文のコンテンツなしで送信した後にレスポンスが届くということから推測するに。

各ボタンをクリックしたときにJSONデータが送信されていたこともふまえて。

 

f:id:ThisIsOne:20200710160904p:plain

 

はじめにJSONリクエストに変更するためにAcceptを変更してGOボタンを実行すると。

何も発見することはできなかったので。

 Accept: application/json

 

次にレスポンスヘッダにあったContent-Typeを追加してHTMLをJsonに変更して。

リクエストの内容を下記のように変更、追加を行ってGOボタンを実行すると。

ハッシュ値が表示されて。
 Content-Type:application/json;charset=UTF-8

 

f:id:ThisIsOne:20200711123112p:plain

 

下記のハッシュ値を入力して。

 gxERduOvfQcPGsNvX/y4w281Jt5Xls8pfi4kWNlAZ6U=

 

f:id:ThisIsOne:20200710162621p:plain

 

Best regards, (^^ゞ