Shikata Ga Nai

Private? There is no such things.

Break the Logic: 5 Different Perspectives in Single Page (€1500)を訳してみた

Hello there, ('ω')ノ

 

論理を破る: 1ページに 5つの異なる視点を。

 

脆弱性:

 サーバ側のセキュリティ

 IDOR

 承認の欠陥のクライアント側の実施

 

記事:

 https://infosecwriteups.com/break-the-logic-5-different-perspectives-in-single-page-1500-5aa09da0fe7a

 

今回は、1つのページで見つけた 5つの異なる脆弱性について。

いつものように、「redacted」と呼ぶことに。

 

始める前に、アプリに関する情報を。

これは基本的に学校/学生向けのアプリで。

教師、生徒、保護者の 3 種類のユーザモデルがあり。

保護者は、生徒のプロフィールで自分の情報のみを編集できるので・

親ユーザとしての権限は制限されていて。

すべてのレポートは、単一の連絡先ページでこの観点から進められ。

 

1.ユーザは、アクセス権がなくても学生の主な住所を変更できて。

親ユーザとして学生のプロフィールにアクセスしたとき。

編集権限のないアドレス セクションを見つけて。

編集ボタンはアクティブでしたが。

クリックするとすべてのフィールドが無効になって。

 

 

ただし、保存ボタンがアクティブであることは引き続き確認でき。

そこで、かなり単純な方法として、フィールドから無効化された属性を削除して。

 

 

フィールドに自分の情報を入力しましたが、保存ボタンがまだアクティブだったので。

リクエストを送信するのは非常に簡単で。

 

 

リクエストを送信したところ。

ターゲット情報が実際に変更されていることがわかって。

保護はアプリケーションのフロントエンドのみにあり。

同様に、これらの情報は Burp Suite を使用して変更できて。

 

2.ユーザはアクセス権がなくてもすべてのセクションを編集できて。

親ユーザは、生徒のプロフィールに連絡先情報をいくつか持っていて。

ただし、この情報をすべて編集することはできず。

そのため、一部のフィールドを編集する権限しかなく。

 

 

たとえば、名前や住所などの情報もありますが、編集ボタンをクリックすると。

連絡先フィールドのみを変更できて。

 

 

この方法でリクエストを送信すると、次の PUT リクエストに遭遇して。

ご覧のとおり、名前、住所など、変更できないフィールドが他にもあり。

 

 

名前、住所、関係などの一部情報を変更してリクエストを送信すると。

 

 

情報が正常に変更され、ページに表示されて。

 

3.アクセス権がなくても、ユーザは新しい保護者の連絡先フィールドを作成できて。

親ユーザは自分の情報しか編集できないので。

新しい親連絡先フィールドを追加することはできず。

 

 

しかし、contact テーブルの編集リクエストを送信したところ。

パラメータの ID 値をすべて変更し。

新しい Contact テーブルを作成することができて。

 

 

写真のリクエストは、第2報のPUTリクエストと同じもので。

ご覧のとおり、リクエストにはさまざまな ID 値が含まれていて。

すべての ID 値の最後の桁をランダムな値に置き換え。

learnerPersonalid はすべての要求の最初にあり。

ページ固有ではなかったため除いて。

 

 

アプリがこのアクションにどのように反応するのか、実際には疑問に思っていて。

おそらく 500 件または 403 件の回答を期待していたのですが。

代わりにアプリが新しい連絡先フィールドを作成してくれて。

 

4.ユーザはアクセスしなくてもアドレスの種類を変更できて。

ユーザは、学生の定義済み住所タイプを変更できず。

たとえば、下の図では、学生用に2つのアドレスが定義されており。

親ユーザはそのタイプを変更できず。

 

 

居住地の住所を正式な住所に変更しようとすると。

アプリケーションでエラーが発生し、リクエストが実行されず。

 

 

最初のレポートの [保存] ボタンがまだアドレスに対して。

アクティブであることを思い出して。

そこで、住所を編集して送信したところ、次のリクエストに出会い。

 

 

「postalTitle」パラメータを公式に変更して。

同様に、正式な住所の住宅に変更することもできて。

 

 

アプリでは、正式な住所にできる住所は 1つだけですが。

両方の住所がメインの住所に変更されていることがわかり。

 

5.ユーザは、アクセスせずに学生の正式なアドレスを削除できて。 (基本 IDOR)

アドレスの種類を調べていると、違いがわかって。

居住地の住所には削除ボタンがアクティブでしたが。

正式な住所には削除ボタンがなく。

 

 

「削除」ボタンは居住地の住所には有効ですが。

正式な住所にはそのようなボタンはなく。


 

ということで、学生の正式住所編集ボタンをクリックして。

Burp Suite を実行し、保存ボタンをクリックしすると。

また次のリクエストに出会い、「household」の値をコピーして。

 

 

次に、自宅の住所に戻って削除ボタンをクリックし、リクエストを取得して。

「household:」の値を正式な住所 ID に置き換えて。

 

 

その結果、アクセスしなくても公式アドレスを削除することができて。

 

Best regards, (^^ゞ