An Easy RACE CONDITION That Made Me Fame から学ぶ

ソース:

medium.com

脆弱性:RACE Condition

 

訳:

レースコンディションとは何ですか?

Race conditions に密接に関連する一般的なタイプの脆弱性で。 business logic flaws
この問題は、Web サイトが適切な保護策を講じずにリクエストを同時に処理した場合に発生し。
これにより、複数の個別のスレッドが同時に同じデータと対話することになり、その結果、 collision それが原因 unintended アプリケーション内の動作。

 

新しい投稿をして、あることに気づきました reactions そして comments、他のソーシャルメディアアプリと同じように。
私が焦点を当てたのは rate limiting そして、を使用して私の投稿に「いいね!」を獲得しようとしました race condition, しかし、いつものようにxDに失敗し。

コメント欄を見ていたら、いくつか思いつき。
まず、このサイトが doesn’t allow the publisher 他のユーザーのコメントを削除するには — only the user can delete their own comment
それを回避しようとしたのですが、また失敗してしまいました:(

 

さて、本当に私の注意を引いたものがあります — the comment sectionまた。
今回、コメントに反応できることに気づき。
Upvoting/Downvoting ユーザーに影響を与える reputation/points
それで、はい、ここで競合状態を試してみて。 

 

一歩ずつ

1-登録しました two users アプリ上で。

2- 次を使用して画像をアップロードします user_1.

3- この画像に次の方法でコメントしました user_2.

4- に戻りました user_1 そして賛成票を投じた user_2さんのコメント。

5- 次を使用して API リクエストをインターセプトしました Burp Suite、そしてそれは次のようになりました:

 

HTTPリクエス

6- このリクエストを次の宛先に送信しました。
Turbo Intruder
の拡張子 Burp Suite 単純な Python スクリプトを使用して、 Attack ボタン。

 

Python スクリプト

 

さて、このコメントに行くと、ついにそれをハッキングしたことがわかり。
 

ご覧のとおり、リクエストをエンドポイントに送信したとき /vote/up?client_id=* 使用して Turbo Intrudercomment's points 減少し、 user's reputation/points も変わり。 

 

コメント

 

ほなほな。