Shikata Ga Nai

Private? There is no such things.

A Weird Price Tampering Vulnerabilityを訳してみた

Hello there, ('ω')ノ

 

奇妙な価格改ざんの脆弱性を。

 

脆弱性:

 支払いの改ざん

 論理的な欠陥

 

記事:

 https://medium.com/@vflexo/a-weird-price-tampering-vulnerability-1251dfe8d2a1

 

今回は、さまざまな製品やサービスが掲載されているサイトを見つけて

ランダムに1つの商品を選んで購入してみることに。

Burp Suiteをオンにして、商品をカートに追加するリクエストを傍受してみると。

製品の価格は、$30で。

キャプチャしたPOSTリクエストで価格パラメータを見つけて。

$30の値を$1などの別の値に変更して、価格の改ざんをテストすると。

POSTリクエストには、値「30」のそのようなパラメータはなくて。

 

試行錯誤の末、「AVeryLongParameter」という値が334436のように。

設定されているパラメータを見つけて。

そして、このパラメータが商品の価格に関与していることがわかって。

 

これはAVeryLongParameter=334436で。

AVeryLongParameterの値を334436から1に置き換えることに。

AVeryLongParameter=1を設定し、POSTリクエストを転送すると。

$30相当のアイテムが$9987の価格でカートに追加されて。

 

パラメータ値が価格の原因であると確信して。

また、AVeryLongParameterの値には、価格を一意に識別する数値識別子が。

含まれていることもわかって。

例えば:

 AVeryLongParameter=334436→$30

 AVeryLongParameter=1→$9987

 

$30相当の製品を「ProductS」と呼ぶことに。

 

 

テスト用に別の製品を選んで。

これは$800の価格で。

これを「ProductC」と呼ぶことに。

 

 

「ProductC」の購入を進めると。

Burp Suiteでプロキシをオンにして、カートに「ProductC」を追加する。

リクエストを傍受して。

そのPOSTリクエストでパラメータ「AVeryLongParameter」を見つけ。

その値は334460に設定されて。

つまり、AVeryLongParameter=334460→$800

 

すぐに334436から334460を交換し、リクエストを転送して。

AVeryLongParameter=334436→$30なので、ブラウザでカートをチェックしたところ。

「Product C」が追加されて、価格は「$30」で。

 

 

「ProductC」の価格を$800から$30に変更できて。

最後まで購入プロセスを実行すると。

支払いプロセスアプリでも$30と表示されていて。

すべてのページで同じ$30の価格で。

 

Best regards, (^^ゞ