記事ディレクトリ
1. ビジネスロジックとは何ですか?
– – 実際、私たちが話しているビジネス ロジックは、コードのみで実装された実際のビジネス ルールのマッピングです。「ルール」という言葉に注目してください。簡単に言えば、ビジネスにはどのようなロジックが存在するのでしょうか? さまざまなビジネスオブジェクト間のつながりや制約を紙に描き、それらのつながりや制約を 1 つずつ列挙してリストを作成します。このリストはルールです。これらのルールの合計がこのビジネスのビジネス ロジックであり、ビジネス ロジック全体です。もう 1 つリストすることはできません。
2. ビジネスロジックの脆弱性の原因
– – アプリケーションの設計と実装に欠陥があると、攻撃者が設計されたソリューションが悪用されるなど、予期しない動作を誘発する可能性があります。プログラムを書くときは「Aが起きたらBが起きてCを実行する」という従来の動作プロセスだけを考えてプログラムを書くというのが一般的な理解ですが、開発者はユーザーが操作したときのことまでは考えていませんでした。予期せぬ動作をする 屋外で動作するとどうなるのか。この異常事態への配慮の欠如は、最終的にはセキュリティの脆弱性につながります。
3. 論理的な抜け穴の重要性
– – 一般的な OWASP 脆弱性のほとんどは、脆弱性スキャン ツールを通じて自動または半自動でスキャンできますが、従来のセキュリティ防御機器や対策はほとんど効果がありません。
– – ただし、論理的脆弱性はシステム自体の機能やロジックに関わる脆弱性であり、それぞれの脆弱性はある程度独自性があり、ルールによるスクリプトのコピーやスキャンが困難なため、関連する脆弱性をツールで完全に置き換えることはできません。逻辑漏洞大多需要配合代码审计和手动测试才可发现
. 脆弱性の一種。
– – ビジネスロジックは通常のリクエストであり、通常の手順に従いますので、一般的なセキュリティ機器では傍受できません。
4. ビジネスロジックの脆弱性の分類
- 検証コードのブレークスルー
- 業務認可セキュリティ
- ビジネスプロセスが狂っている
- ビジネスインターフェース呼び出し
- 制限時間回避テスト
- ID認証セキュリティ
- ビジネス一貫性のセキュリティ
- ビジネスデータの改ざん
- ユーザー入力のコンプライアンス
- パスワード取得の脆弱性
5. ビジネスロジックの抜け穴 - ビジネス認可のセキュリティ
1. 不正アクセス
– – 不正アクセスとは、ユーザーが認証が必要なページや文字情報などに、許可なく直接アクセスできることを指します。
– – Web サイトのフロントエンドまたはバックエンドにログインし、関連するページのリンクを他のブラウザーまたは他のコンピューターにコピーしてアクセスし、正常にアクセスできるかどうかを確認できます。例えば:Google Chrome を使用して Baidu アカウントにログインし、ログイン後のパーソナル センター ページへのリンクをコピーし、Firefox にコピーしたところ (Baidu アカウントにログインしたことがありませんでした)、ログインできることがわかりました。成功しました。。これは不正アクセスです。
2. 不正アクセス
– – 不正な脆弱性の主な原因は、開発者がクライアントから要求されたデータを過度に信頼し、データの追加、削除、変更、クエリを実行する際の権限の決定を見逃すことです。
1) 並列オーバーライド (水平オーバーライドとは、同じ権限を持つ異なるユーザーが相互にアクセスできることを意味します)
– – あるプラットフォームにログインしたところ、URLにID番号が記載されていたため、そのIDを直接変更して他人のアカウントにログインしてしまいました。
2) 垂直オーバーライド (垂直オーバーライドは、権限の低いユーザーが権限の高いユーザーにアクセスできることを意味します)
– – 某プラットフォームの高度な機能へのパスが流出したため、通常のアカウントでログインし、そのパスに直接アクセスしたところ、アカウントに直接アクセスでき、これまで存在しなかった機能が利用できることが分かりました。(権限の低いユーザーは権限の高いユーザーにアクセスします)
3. 不正アクセスマイニングのアイデア
- 水平方向の不正アクセス: ユーザー番号、ユーザー グループ番号、またはタイプ番号が Web サイトのデータ パケットで送信される場合、この値の変更を試行することが、不正アクセスの脆弱性をテストするための基礎となります。
- 垂直オーバーライド: ユーザーを追加し、高い権限を持つユーザーの機能を取得し、フロントエンド JS 内のリーク パスを見つけます。
4. ウルトラウイルスの抜け穴の害
– – 不正な脆弱性の被害や影響は、主に該当するビジネスの重要性に関係しており、例えば、サーバー側の応答で特定のページが返される(そのページが返す情報に限らず、その情報が含まれる場合もあります)。応答パッケージに含まれるため、ページには表示されない場合があります) 並行オーバーライドがある場合、ログイン名、ログイン パスワード、携帯電話番号、ID カードなどの機密情報、通过对用户ID的遍历,就可以查看所有用户的敏感信息,这也是一种变相的脱库,而且很难被防火墙发现,因为这和正常的访问请求没有什么区别,也不会包含特殊字符,具有十足的隐秘性。
5. 不正アクセスの脆弱性を検出する方法
– – 最も簡単な検出方法は、最初に認証パラメータを特定し、次にそれを他のアカウント認証パラメータに置き換えて、不正アクセスの脆弱性を検出することです。
6. ビジネスプロセスが狂っている
連続実行の欠陥
- a) 一部の Web サイト ロジックは、プロセス A、次にプロセス B、次にプロセス C、そして最後にプロセス D になる場合があります。
- b) ユーザーはアプリケーションに対して行うすべてのリクエストを制御するため、任意の順序でアクセスできます。したがって、ユーザーは C をバイパスして、B から直接 D プロセスに入ります。C が支払いプロセスの場合、ユーザーは支払いプロセスをバイパスして商品を購入します。C が検証プロセスの場合、検証をバイパスして Web サイトのプログラムに直接入ります。
- 例:
登録ページにアクセスし、アカウントを登録し、リチャージし、データ パッケージを送信して取得し、任意の金額を入力してパッケージを取得し、注文番号を取得し、注文番号を使用してリチャージ リンクを構築し、それにアクセスして確認します。充電は成功しました。
6. ビジネス ロジックの抜け穴 - ビジネス インターフェイス呼び出し
1.リプレイアタック
– – テキスト メッセージや電子メールを通じてビジネスに電話をかけたり、ビジネス データを生成したりするプロセス (例: SMS 検証コード、電子メール検証コード、注文の生成、コメントの送信、チェックイン、投票など)、通話の実行 (リプレイ) ) ビジネスリンクのテスト。有効なビジネスまたはデータの結果を生成するためにビジネスが複数回呼び出される (再生される) 場合。
1) 悪意のある登録
– – BURP を利用して同じパッケージを連続して送信することで登録を実現できるため、一度に大量の登録要求パッケージを送信することができ、悪意のある登録が発生する可能性があります。
2) SMS爆弾
– – テストプロセス中に、多くのシステムはJS校验时间来控制
フロントエンドのテキストメッセージを通じてのみボタンを送信していることがわかりましたが、后台并未对发送做任何限制
その結果、リプレイパッケージを通じて大量の悪意のあるテキストメッセージが送信されることになります。
3) 無制限のポイントブラッシング/投票
– – たとえば、毎日サインインすると 5 ポイントを獲得できますが、サインイン インターフェイスに制限がなく、サインイン インターフェイスを無限に再生できる場合は、無制限にポイントを獲得できます。
4) 投票活動における筆投票
– – 投票インターフェイスに制限はなく、フロントエンド JS にのみ制限があり、投票インターフェイスを無限に再生して、指定されたユーザーの投票をスワイプできます。
– – ただし、現在、ほとんどの投票システムには制限があります。たとえば、同じ IP では 1 日に 3 回までしか投票できません。XForwarded-For:127.0.0.1 を使用して IP 制限を回避してみることができます。
2. コンテンツの編集
- 同様のケースは次のとおりです。
– – [SMS 認証コードを取得] をクリックし、以下に示すようにデータ パケットの内容を取得します。sendData/insrotxt
データ パケットを分析すると、パラメータの内容がクライアントによって制御されており、攻撃者が送信したい内容に変更できることがわかります。
– – テキスト メッセージの内容を改ざんし、フィッシングに使用される可能性があります。
1) 時間範囲の変更
– – 時間制限のある一部のサービスでは、特定の制限時間内のビジネス クエリなど、制限時間の範囲を変更し、時間の平文フィールドを含むリクエストを変更して送信し、時間を回避してビジネス プロセスを完了できるかどうかを確認します。限界です。
– – この抜け穴は、かつて流行した一時滞在許可取引のように、ある程度深刻な結果を招く可能性もあります。
7. ビジネス ロジックの脆弱性 - ビジネス一貫性のセキュリティ
1. 携帯電話番号の改ざん
– – パケットをキャプチャし、携帯電話番号パラメータを別の番号に変更してみます。
– – 例: クエリ ページで自分の番号を入力してパケットをキャプチャし、携帯電話番号パラメータを他の人の番号に変更して、他の人のビジネスをクエリできるかどうかを確認します。
– – もう一つの状況ですが、パスワードを変更する場合、携帯電話で認証コードを受信する必要がありますが、このとき、パケットをキャプチャして、認証コードを受信する携帯電話を自分のものに変更することができます。それがあれば、他のアカウントのパスワードを変更できます。
2.メールアドレスの改ざん
– – パケットをキャプチャし、ユーザーの電子メール パラメーターを他のユーザーの電子メール パラメーターに変更します。
3. オーダーIDの改ざん
– – パケットをキャプチャし、ユーザーの電子メール パラメーターを他のユーザーの電子メール パラメーターに変更します。
4. 品番改ざん
– – 例:ポイント交換所では、100ポイントで商品番号001、1000ポイントで商品番号005のみ交換できます。100ポイントで商品と交換する場合は、パッケージを手に取り、商品番号を005でポイントの低い商品を使用し、エリアをポイントの高い商品に変更します。
5. ユーザーIDの改ざん
– – パケットをキャプチャして自分のユーザー ID を確認し、ID を変更して (プラスまたはマイナス 1)、他のユーザー ID 情報を確認できるかどうかを確認します。