目次
1. 事前知識ポイント
2. 脆弱性に関する重要な知識ポイントの表示例と説明
2. 商品をランダムに開くと、数量が 1 の場合、価格が 6000 であることがわかります。
3. 購入後、クリックしてデータ パッケージを取得します。
4. データパッケージから数量と価格を確認できます。
5.荷物を直接入れると、支払いページにジャンプします。
<改ざん価格>
6. 価格を 1 に変更し、パッケージを配置します。
7. Web サイトの支払いページで、支払う金額も 1 になっていることがわかります。
8. この現象の理由は、ウェブサイトの価格が固定されているのではなく、データ パッケージによって決定されるためです。
<改ざん回数 1>
9. 数量を -1 に変更し、パッケージを入れます。
10. 金額が -6000 に変更されたことがわかります。
<タンパーオーダー情報>
11. 最初の製品を選択し、クリックして購入し、データ パッケージを取得します。
12. 2 番目の製品を選択し、[購入] をクリックしてデータ パッケージを取得します。
13. パケット情報をメモ帳に貼り付けます。
14.ある商品の価格を使用して別の商品を購入するには、特定の値を変更するだけです。
15. 次の 2 つの部分をコピーして、データ パッケージ内の対応する位置に貼り付けます。
16. データパッケージを変更後、パッケージを入れます。
17. 支払いページで、購入するアイテムが正常に変更されたことを確認できます。
<タンパーオーダー情報>
18. 支払い方法をクリックすると、多くのオプションが表示されます。
19. ここでは、最初に Alipay 支払いを選択し、[注文を送信] をクリックして、データ パッケージを取得します。
20. このデータ パケットをリリースした後、ウェブサイトは Alipay に関連する支払いリンクをプルして、次のデータ パケットを形成します。
<改ざん回数2>
23. 次のショッピング サイトに移動します。
25. [今すぐ購入] をクリックしてパケットを受け取ります。
26. データ パッケージを観察すると、購入数量がデータ パッケージの最後の行にあることがわかりますが、購入金額はデータ パッケージに表示されないため、価格の改ざんを直接防ぐことができます。
27. データ パッケージには価格情報はなく、数量情報のみなので、数量を変更してみましょう。
28. 「0.0001」に変更し、パッケージをリリースします。 29. 最終的な合計金額が以下のスタイルになることがわかります。
<改ざんクーポン>
30. 商品ページにアクセスすると、この商品のクーポンがあることがわかります。
31.商品を購入した後、クーポンを使用して購入できることがわかります。
32. 1 つを選択すると、金額は 900 元になります。
33. 支払い方法を選択したら、[今すぐ支払う] をクリックします。
34. 決済完了後、再度商品を購入すると、クーポンが最初の3枚から2枚に変わっていることがわかります。
35. もう一度購入をシミュレートし、3 つすべてを使い果たします。
36. クーポンを使用した後に再度購入すると、クーポンを使用するオプションがありません。
37. 今度はもう一つ手に入れましょう。
38. 後で再度購入したところ、別のクーポンがありました。
39. 購入するクーポンを選択し、[今すぐ購入] をクリックしてデータ パッケージを取得します。
40. パラメータを貼り付けましょう。
41. 別のクーポンを取得してから、クーポンを使用せずに購入し、[今すぐ購入] をクリックしてデータ パッケージを取得します。
42. パラメータ値をもう一度貼り付けて、貼り付けたものと比較してみましょう。
43. クーポンなしのデータ パッケージとクーポン付きのデータ パッケージの内容の違いは、次のように明確にわかります。
44. 要約すると、これは値であり、クーポンを使用した場合の値は 106、クーポンを使用しなかった場合の値は 0 です。
45. クーポンに関する質問:
- 繰り返し収集 - クーポンは 1 人のユーザーのみが請求でき、1 回の購入で使用できます。
- 再利用 - パケットの再生
46. クーポンに番号が付けられていると仮定します.クーポンを使用して再度購入すると、データパケットの下のコードが107に変更されていることがわかります.
47. クーポンの価値が常に上昇していることは明らかです。
48. クーポンを受け取らないようにしましょう。上記の値を変更して試してみてください。
49. この時点で、購入したデータ パッケージを再度取得し、その値をより大きな数値に変更します。ここでは「200」に変更します。
50. バッグを置いた後、価格が 900 に変更されていることがわかります。
51. この抜け穴を使用する前提は、そのクーポンの法則を見つけることなので、次のような質問を考える人もいるでしょう: 通常、クーポンは 1 回しか請求できないので、上記のように複数回収集して見つけるにはどうすればよいでしょうか?法律?毛織物?
52. この種の問題は簡単に解決できます。別のアカウントとパスワードを登録して取得します。
53. ここで別の質問があります。クーポンのコードを再利用できますか?
54. ここでは、購入時に別のデータ パケットを取得し、クーポン番号の位置を先ほど試した 107 に変更します。
55.パッケージを入れた後、金額はまだ900で、クーポン番号はまだ使用できることがわかります。
56. この時点で、商品を購入するためのこのクーポンは危険すぎると思うかもしれません。
61.貼り付けます。
62. 支払いページの ID を取得し、それもコピーします。
65. 次に注文センターにチェックに行きます。
66. 注文カバレッジを使用しようとし、1000 注文を使用して 100000 注文をカバーします。
67. 1000 オーダーをクリックして支払います。
68. 次のパケットをキャプチャします。
69. 2 つのデータ パケットを手放した後、順序番号の付いたデータ パケットが表示されます。
70. コピーしたばかりの 100,000 注文の注文情報に変更します。
71. パッケージを配置した後、それに応じて注文金額が 100,000 に変更されたことがわかります。
72. 同様に、注文番号情報を 100000 から 1000 に逆に変更すると、金額はそれに応じて変更されますか?
73. 答えはイエスです。
74. 次に、次の 3 つの可能性が考えられます。
75. このセキュリティ問題の解決策は実際には非常に単純です. データ パケットには id 値があることがわかります. この値を通じて, 注文商品と注文金額を制御できます.注文番号は後で 意味がありません.2つを同時に変更することは可能です.2つが一致しない場合、論理エラーが発生し、エラーページがポップアップします.
76. 検証のために別のケースを使用しましょう。
77. 購入後のキャプチャ パケットを見つけます。
78. 上記の変更後にデータ パッケージをパッケージに入れると、以下のとんでもない順序が表示されます。
79. このウェブサイトには明らかに問題があります。
3. マイニングの方法と防止方法
- 金額はデータベース定義の対象となります
- 購入数量は正の整数に制限されています
- クーポンは永久使用後に削除されます
- 注文が生成された後、対応する値を確認します