「One Bug at a Time: In depth analysis of 3 IDOR bugs」からIDORを学ぶ

ソース:

https://medium.com/@atomiczsec/one-bug-at-a-time-in-depth-analysis-of-3-idor-bugs-2fb016e21b96

 

脆弱性:IDOR(Insecure Direct Object References)

 

訳:

バグその1:  IDOR によりチームの位置情報が開示される

私はHackeroneのプログラムを探していて、そのアプリケーションをスパイダーで調べていて。このために、アプリを通じてすべての機能をクリックした。すべてのボタンをクリックし、提供されるすべての機能を試して。場合によっては、より多くの機能にアクセスするためだけにプレミアム バージョンを購入することもあるって。

 

/forecasts/ という 1 つのエンドポイントを見つけました。これを使用すると、チームの天気予報を取得して、いつ練習や試合を行うかを知ることができて。次に、Burp Historyで完全なリクエストを確認し、完全なエンドポイント「api.redacted.com/forecasts/search?team_id=123」を確認しできて。

プログラムからどのような種類のデータが返されているかを調べたところ、応答は次のようになり。チームの[州、市、郡、経度、緯度]を表示します。

次に考えたのは、チーム ID を変更することでした。 IDを変えてドーン! これらすべての情報を使用して、新しい場所を取得しました。攻撃者は、名前と正確な場所によってチームを列挙する可能性があり。

 

 

バグその 2: IDOR によって任意のユーザーのメッセージが表示されてしまい

Burp Suite の HTTP 履歴を調べているときに、興味深い POST リクエストに気づきました、 /Messages/MostRecent。これが企業のメッセージングシステムへの重要なエントリ ポイントになる可能性があることに気づき、私の好奇心が高まり。

 

ペイロードの分析:

POST リクエストをさらに詳しく調べ、リクエストのペイロードを調べ、「userId」と呼ばれる重要なパラメータを特定できて。このパラメータは、アプリケーションが誰の最近のメッセージを取得するかを決定しているようで。

 

自分のユーザー ID を使用してテストする

私は自分のユーザー ID から始めることにし、自分の ID を含むペイロードを含む POST リクエストを作成し。私の確認に、電卓は私の最新のメッセージを表示して応答しました。

 

POST /Messages/MostRecent HTTP/2
Host: www.redacted.com
Content-Length: 94

{"userId":57231173,"count":18,"freeStepsTrialTest":{"cvid":null,"type":0}}

 

明らかになった脆弱性

懸念が高まるにつれて、この方法で自分のメッセージにアクセスできる場合、他のユーザーのプライベートな会話も公開される可能性があることに気づきました。 安全でない直接オブジェクト参照 (IDOR) の脆弱性が目の前に迫ってきました。

 

「userId」パラメータの改ざん

私は POST リクエストのペイロード内の「userId」パラメータを改ざんする計画を立て。値をランダムなユーザー ID に変更して、再度リクエストを実行し。残念なことに、アプリケーションは私に属さないプライベート メッセージを素直に返しました。

 

 

バグその 3: IDOR による情報開示

この IDOR は、私が今まで見つけた中で最も迅速な IDOR でした。 私は友人の 1 人と一緒にプライベート プログラミングを探していて、そのアプリケーションを探索していました。 Burp historyですべてのリクエストをもう一度チェックし、エンドポイントを見つけました。

 

/v2/groups/ID-HERE

 

いつものようにIDに気づきIDを変更してどうなるか試して。このバグにより、ランダムなチームについて次の情報を取得できるようになりました。

返されるデータには、氏名、電話番号、グループに登録しているユーザーの数、その他の機密情報が含まれます。

 

 

ほなほな。