('ω')ノ価格操作の脆弱性につながる高度な手動侵入テストを。脆弱性:支払いの改ざん記事:https://blackbatsec.medium.com/bug-bounty-advanced-manual-penetration-testing-leading-to-price-manipulation-vulnerability-d935a3a5ddf6価格操作は、攻撃によって発注された注文の価格が。変更される可能性があるパラメータ改ざんの脆弱性の一種で。この脆弱性は、eコマースWebサイトでは一般的で。今回は、vulnsite.comと呼ぶことに。アプリケーションを調査して、すべてのAPIリクエストを分析した後に。注文の価格が含まれている興味深いリクエストを見つけて。下記が、価格操作に対して脆弱なリクエストで。500ptで、$100相当のカードを購入できたので。パラメータを変更するとサーバは「無効なリクエスト」で応答して。最初にクラックしなければならなかったのは、「secret_key」で。アンチパラメータ改ざんのトークンとして機能していることに気づいて。ブラウザから生成されるので、それを生成するjsコードが必要で。そこで、すべてのjsファイルで検索を開始すると。トークンを生成するjsファイルと関数を見つけて。上記の関数から、トークンが3つのステップで生成されることを確認して。1.リクエスト本文は、JSON.Stringify関数を使用して文字列に変換されて。2.次に、文字列はSHA256ハッシュに変換されて。3.ハッシュは、Base64エンコーディングを介してエンコードされて。https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringifyこの時点で、自分のトークンを生成することができて。サーバは、それに正しく応答したものの。カードの価値を$200に変更作した後に。サーバは、コード422(処理不能エンティティ)で応答したので。再度、リクエストを確認してみると。「current_exchange_rate=1」という興味深い別のパラメータを見つけて。「current_exchange_rate=0.5」に変更して。カードの値を$100⇨$200に変更するとカードの値段をうまく操作できて。結論:リクエスト内のすべてのパラメータを常に微調整して。トークンがクライアント側で生成された場合は。いつでもそれを解読することができて。Tシャツを1ユーロで購入できた方法を。価格操作のユニークなケースを。HTTPパラメータの汚染を。£→$へのパラメータ改ざんを。(3)引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。