Shikata Ga Nai

Private? There is no such things.

Chaining Multiple Requests to Achieve Rate Limiting Vulnerabilitiesを訳してみた

Hello there, ('ω')ノ

 

レート制限の脆弱性を実現するために複数のリクエストを連鎖させるを。

 

脆弱性:

 レート制限バイパス

 

記事:

 https://ahmdhalabi.medium.com/chaining-multiple-requests-to-achieve-rate-limiting-vulnerabilities-96c1e8365c06

 

ツール:

 Burp Suite

 

今回は、レート制限の脆弱性を見つけて。

レート制限の保護をバイパスすることについての新しい方法論を共有することに。


概要 :

多くのプログラムや企業は、認証とログインや投稿の作成などの。

重要な機能を必要とする機密性の高いエンドポイントに。

レート制限保護を実装していて。

保護は大きく異なる可能性があって、保護の実装方法には。

複数の種類と方法があるので、これらの保護の一部をバイパスする方法もあって。

 

プログラムには通常、ページにアルゴリズムセクションが含まれていて。

プロジェクトで共同作業を行うための共同作業者を追加できて。

共同編集者を追加すると、共同編集者として参加するように通知する通知が。

彼の電子メールに送信されて。

ユーザを共同編集者から削除して再度招待しない限り。

ユーザーを1回だけ招待できて。

 

上記の機能により、add_collaborator、normal request、remove_collaboratorの。

3つのリクエストをチェーンすることでバグを発見して。

以下の手順を実行することで、ターゲットユーザに通知を無制限に。

送信できるマクロをBurpで作成して。

 

 1.共同編集者の追加リクエストを実行

 2.通常のリクエストをwww.target.comに送信

 3.共同編集者の削除リクエストを実行

 

また、上記の3つの手順を自動化された方法で繰り返すと。

コラボレーションの招待状を使用して被害者のメールシステムが爆撃されて。

 

再現する手順 :

基本的な方法でバグの存在を証明するには、コラボレータを追加して削除して。

もう一度、追加して削除するだけで。

そのユーザのメール受信ボックスに2つの通知が届いて。

高度な方法でそれを実行したい場合は、追加、削除、コラボレータプロセスを。

自動化し毎回繰り返すスクリプトを作成するか。

もしくは、Burpを使用して実現するかで。

今回は、Burpでコラボレータの追加とコラボレータの削除を実行して。

アカウントに移動することに。

 

下記は、コラボレーション設定の画面で。

 

f:id:ThisIsOne:20211003142103p:plain

 

Burpの[Project options]⇨[Session Handling Rules]⇨[Add]⇨[Rule Actions]⇨[Add]で。

[Run a macro]を選択して。

 

f:id:ThisIsOne:20211003150625p:plain


[Macros]⇨[Add]で、Burpのリクエストの履歴が開くので。

次に、3つのリクエストを下記の順番に選択して。

 Add collaborator ⇨ Request to profile account ⇨ Remove collaborator

 

[OK]をクリックして、[Test macro]をクリックして。

通知がターゲットの電子メール受信ボックスに送信されることを確認して。

 

f:id:ThisIsOne:20211003142017p:plain

 

[Test macro]は、何度でも試すことができて。

試すたびに下記のように被害者のメールの受信トレイに通知が送信されて。

なので、この攻撃を自動化すると。

被害者の受信トレイに大量のメールが送信されて。

 

f:id:ThisIsOne:20211003142039p:plain

 

影響 :

コラボレーションの招待状を任意のユーザに送信することを悪用すると。

大規模な攻撃によって、ユーザのメールシステムが大量の招待状で爆破されて。

 

この脆弱性が発生する理由:

プログラムが、コラボレーションの招待のレート制限を達成するために。

3つのリクエストを連鎖させることを期待していなかったという理由だけで。

 

修復:

「コラボレータの追加」および「コラボレータの削除」リクエストに。

レート制限保護を適用して。

 

学んだ教訓:

特定のアクションを実行するために複数のリクエストに依存している場合は。

それらを保護として信頼するだけでなく、レート制限を悪用するために。

複数のリクエストを連鎖させることができるため。

一種のレート制限保護も実装する必要があって。

 

Best regards, (^^ゞ