ビジネスロジックの脆弱性とは何ですか#
ロジックの脆弱性とは、システム、アプリケーション、または他のシステムコンポーネントに存在する論理的なエラーや欠陥を指し、セキュリティの問題やデータの漏洩を引き起こす可能性があります。これらの脆弱性は、設計や実装の過程でのエラーや不完全、不合理な論理判断によって引き起こされることが通常です。攻撃者はこれらの脆弱性を利用して、許可されていないアクセス権を取得したり、データを改ざんしたり、他の悪意のある操作を実行したりすることができます。このような脆弱性は、パスワードの変更、権限の乱用、パスワードの回復、取引の支払い金額などの機能でよく見られます。
この記事では、ビジネスロジックの脆弱性の発掘に関するいくつかの経験を共有します。
一般的な論理的な脆弱性#
論理的な脆弱性はその特性から、どこにでも現れる可能性があり、WAF などの手段では防御するのが難しいです。論理的な脆弱性はさまざまな方法で利用され、しばしば組み合わせて現れます。例えば、同時処理 + 支払い、権限乱用 + 支払いなどです。したがって、以下の分類は完全で正確ではありませんが、読者が理解しやすくするためのものです。
支払い#
購入シナリオ#
支払い金額の変更
支払い状態の変更
購入数量を負の数に変更
金額を負の数に変更
成功したリクエストの再送信
適切な並列データベースロックの処理
四捨五入
整数オーバーフロー
クーポンシナリオ#
クーポンの再利用
クーポンの列挙
クーポンの並列使用
その他にも、契約シナリオなどがあります。
支払いのロジックの脆弱性のテクニックは数え切れないほどありますが、ここでは月神のビデオをおすすめします。また、オンラインでまとめ記事を探すこともできます。
権限乱用#
権限乱用の脆弱性は、論理的な脆弱性の中でも特に重要です。以下の 4 つのカテゴリに分けることができます:
非認証アクセス#
静的ファイルへのアクセス
特定の URL によるアクセスの防止
水平的な権限乱用#
攻撃者は、自身と同じ権限を持つ他のユーザーのリソースにアクセスすることができます。例えば、権限のタイプは変わらず、ID が変わる場合です。
垂直的な権限乱用#
低レベルの攻撃者が高レベルのユーザーのリソースにアクセスすることができます。例えば、権限の ID は変わらず、タイプが変わる場合です。
クロスサイト権限乱用#
権限の ID とタイプが変わるアクセスです。
CAPTCHA#
CAPTCHA の再利用
CAPTCHA のブルートフォース攻撃
SMS 爆撃
レスポンスパケットの漏洩
ローカル検証の回避
DDoS 攻撃
任意のユーザー#
任意のユーザーによる接続、ログイン、削除、列挙などの操作を含みます。
パスワードの回復
パスワードの変更
論理的な欠陥#
WeChat ログイン API での身元確認の不足
JWT のハードコーディング
制限の突破#
不適切なコンテンツの AI 生成
数量制限の突破(商品、いいね、投票、ポイント、抽選など)
ビジネスロジックの脆弱性の発見のためのエキスパートになる方法#
一つのことを多くのことよりもよく知る#
特定の技術に精通すると、テストのプロセスで多くのアイデアが生まれ、独自のアプローチを形成することができます。これにより、この種の脆弱性を見逃すことはありません。
心の持ち方が非常に重要です#
脆弱性の発見初期には、脆弱性を見つけることができないか、審査で無視されることがよくありますが、それによって脆弱性の発見への情熱を失ってはいけません。各脆弱性の報告をタスクの完了と見なし、結果にこだわりすぎないようにしましょう。積極的で楽観的な心構えを保つことで、自己向上と成長が可能になります。
"細かい犬" になる#
どのような脆弱性を見つけるにしても、見かけ倒しにならないようにしましょう。すべての機能ポイントを注意深く考え、詳細に分析することが論理的な脆弱性の発見の基礎です。同時に、パラメータに対して鋭敏になる必要があります。細部に対する感度と深い理解を持つことで、隠れた論理的な脆弱性を発見することができます。
運も実力の一部です#
技術と運の両方が必要です。多くの場合、脆弱性の発見には一定の運が必要ですが、運は準備ができている人に好意的です。努力と経験を積み重ね、自身の技術レベルと鋭敏さを高めることで、成功の可能性を高めることができます。
継続的な学習と共有#
学習の情熱を持ち続け、最新のセキュリティ動向や脆弱性の事例に関心を持ちましょう。また、自身の経験や知識を共有し、同僚との交流を通じてさらなるインスピレーションとアイデアを得ることができます。
実践によって真の知識を得る#
実際のプロジェクトや CTF コンテストに積極的に参加し、脆弱性の発見能力を向上させましょう。理論的な知識は重要ですが、実践の経験も欠かせません。
自動化ツールを活用する#
さまざまな自動化ツールを活用して効率的な検出を行いましょうが、ツールに完全に依存しないようにしましょう。ツールは効率を向上させるのに役立ちますが、最終的には人の分析によってより深い論理的な脆弱性を発見する必要があります。
結論#
学習、実践、共有を通じて、あなたは優れたビジネスロジックの脆弱性の発見者になるでしょう。この道の中で、好奇心と探求心を持ち続けることが成功の鍵です。