Business logic
Hello there, ('ω')ノ ねらい このLABは、登録時のメールドメイン制限(@ginandjuice.shopのみ)を、メールアドレスのパース処理の食い違いを突いて突破します。クライアント(アプリ側)とメールサーバ/ライブラリ側の“どの文字列を本当のアドレスとみなす…
Hello there, ('ω')ノ ねらい このLABは、入力値の取り扱いが処理の場所ごとにバラバラだと、想定外の権限(ここでは管理者パネル)に到達できてしまう、というロジックフローの欠陥を学ぶ演習です。 キモは「メールアドレスの長さ制限」と「確認メールの送…
Hello there, ('ω')ノ ラボ概要 このラボでは、ショッピングサイトの購入ワークフローに存在するビジネスロジックの脆弱性を突いて、通常よりも少ない金額で「Lightweight l33t leather jacket」を購入する方法を学びます。具体的には、クーポンコードの適…
Hello there, ('ω')ノ 概要 ビジネスロジックの脆弱性は、アプリケーションが提供する機能の性質や業界特有の要件に起因するため、その影響は広範かつ深刻です。特にオンラインショップの割引機能のように、ユーザーの操作に基づいて価格が変動するロジック…
Hello there, ('ω')ノ 脆弱性の概要 このラボでは、2要素認証(2FA)の不完全な実装により、攻撃者が2FAコードを入力せずに保護されたアカウントページにアクセスできる脆弱性を検証します。具体的には、ログイン後に2FAコードの入力を求められますが、サー…
Hello there, ('ω')ノ 2FAの一般的な実装とその問題点 多くのウェブアプリケーションでは、ユーザー認証を強化するために2要素認証(2FA)を導入しています。通常、ユーザーは最初にユーザー名とパスワードを入力し、その後、SMSや認証アプリを通じて提供さ…
Hello there, ('ω')ノ 概要 このラボでは、パスワードリセット機能に存在するロジックの不備を悪用し、他人のアカウント(carlos)のパスワードをリセットして不正にログインする方法を学びます。 攻略目標 carlos のパスワードをリセットする carlos のア…
Hello there, ('ω')ノ 概要 多くの開発者は「ユーザーは必ずすべての必須フィールドを入力する」と想定しています。しかし現実には、攻撃者はBurp Suiteなどのツールを使って、HTTPリクエストの途中でパラメータを編集または削除することができます。これは…
Hello there, ('ω')ノ ラボの目的 このラボでは、特定のドメイン(@dontwannacry.com)のメールアドレスを持つユーザーにのみ管理者パネルへのアクセスが許可されているという設定のもと、メールアドレスの変更機能の不備を突いて、任意のユーザーが管理者…
Hello there, ('ω')ノ 脆弱性の核心:「ユーザーは正しく使うはず」という思い込み 多くのアプリケーションでは、次のような楽観的な設計が行われてしまいます: ✅ 最初にチェックを通過したなら、その後も正しい動きをしてくれるはず。 しかし、これは非常…
Hello there, ('ω')ノ 脆弱性の概要 このラボでは、ショッピングカートの数量パラメータに対する不適切なサーバー側バリデーションを突くことで、商品価格を意図的に操作し、高額商品を格安で購入することが可能です。具体的には、負の数量を利用してカート…
Hello there, ('ω')ノ ✅ 脆弱性の概要 多くのアプリケーションは、画面上では正常な入力値しか想定しておらず、 異常な入力値(負の数、異常に大きな値、桁外れな文字列など)への対処を忘れていることがあります。 典型的な設計ミスの例:送金処理 以下は…
Hello there, ('ω')ノ ラボの目的 「商品価格がクライアント制御に依存しており、サーバーで正しく検証されていない」という脆弱性を突いて 高額な「Lightweight l33t leather jacket」を不正に安く購入します。 攻略手順(Burpを使って値を改ざん) 1. ロ…
Hello there, ('ω')ノ 本質的な問題 「ユーザーはWeb画面の通りにしか操作しない」 「クライアント側のチェックがあるから大丈夫」 このような前提で設計されたシステムは攻撃者には無力です。 どんな攻撃が可能になるのか? 攻撃者は ブラウザではなく Bu…
Hello there, ('ω')ノ ✅ ビジネスロジックの脆弱性とは アプリケーションの「業務フロー」や「利用ルール」に基づいた設計上の不備により、 ユーザーが意図されていない操作や悪用をできてしまう問題です。 なぜ検出が難しいのか? SQLインジェクションやXS…