Real-World Example of Race Condition Exploits “Adding Money” から学ぶ

ソース:

medium.com

脆弱性:Race Condition

 

訳:

これは私の最初の記事であり、競合状態の脆弱性があるアカウントにさらに資金を追加する方法について説明します。

競合状態とは何ですか

競合状態は 、Web サイトが十分な保護なしで同時リクエストを処理する場合に発生する、ビジネス ロジックの欠陥に関連することが多い脆弱性の一種で。
これにより、複数のスレッドが同じデータに同時にアクセスできるようになり、アプリケーションの意図しない動作を引き起こす衝突が発生する可能性があり。
競合状態攻撃では、戦略的にタイミングを決められたリクエストが意図的に衝突を引き起こし、この動作を悪用して悪意のある目的を達成し。

再現する手順

モバイルアプリには友達を招待する機能があり、お互いにお金を稼ぐことができて

1:アカウントを2つ作成し、アカウントBを招待します。
アカウント B を招待すると、スクラッチの報酬が得られ、1 ドルから 100 ドルまでのお金を獲得でき。

2: インターセプトをオンにしてスクラッチ リクエストを送信し
リクエストは次のようになって:

 

 

3: Turbo Intruder Extension があることを確認して。
burp extensions からダウンロードできます。
[拡張機能] > [ターボ イントルーダー] > [ターボ イントルーダーに送信] をクリック。
4:ターボイントルーダーセクションに移動し、選択します race-single-packet-attack.py.
$S= 」 を追加して「攻撃」をクリックし。

 

 

5: スクリプト race-single-packet-attack.pyはリクエストを同時に 100 回送信しますが、サーバーはすべてのリクエストを同時に処理できないため、図に示すように複数の報酬が追加され。 

 

 

「お金は私の口座に 5 回追加され、今は引き出すことができるようになりました。」 

 

 

ほなほな。