Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/rachidafaf/bola-cve-2023-27524
認証と認可脆弱性分析ウェブアプリケーション悪用APIセキュリティテストペネトレーションテスト学習と教育
GitHubrachidafaf/bola-cve-2023-27524

bola-CVE-2023-27524

CVE-2023-27524 Broken Object Level Authorization(BOLA)脆弱性を、脆弱なFlask API実装と修正済みFlask API実装を用いて実演し、セキュリティ教育向けに提供します。

リポジトリを見る
4ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

bola-CVE-2023-27524

📄 README.md — BOLA CVE-2023-27524 デモプロジェクト

root@kitploit:~
# 🔐 Broken Object Level Authorization (BOLA) デモンストレーション  
## CVE-2023-27524 セキュリティ分析と修正

---

## 📌 プロジェクト概要

このプロジェクトは、FlaskベースのAPIを使用して、実際の **Broken Object Level Authorization (BOLA)** 脆弱性とその安全な修正方法を示します。

この脆弱性は **CVE-2023-27524** に基づいてモデル化されており、APIリクエスト内のオブジェクト識別子(ID)を変更することで、攻撃者が権限のないオブジェクトにアクセスしたり操作したりできるようになる、不適切な認可制御を含みます。

このリポジトリには以下が含まれます:
- ❌ vulnerable_api.py: 脆弱なバージョンのAPI
- ✅ fixed_vulnerable_api.py: 適切なオブジェクトレベルの認可を実装したセキュアな修正版

---

## ⚠️ BOLA とは?

**Broken Object Level Authorization (BOLA)** は、アプリケーションが以下のような場合に発生します:
- オブジェクトIDを公開する(例: `/profile?id=2`)
- 認証されたユーザーがそのオブジェクトにアクセスする権限があるかを検証しない

### 🔴 影響:
攻撃者は以下のことが可能になります:
- 他のユーザーのプライベートデータへのアクセス
- 権限のないリソースの変更や削除
- 水平特権昇格の実行

---

## 💥 脆弱な実装

### 例(脆弱なコード)

```python
@app.route('/profile')
def profile():
    user_id = request.args.get("id")
    return users.get(int(user_id))

❌ 問題点:

  • 認証チェックなし
  • 所有権の検証なし
  • ユーザーが制御するIDによりデータベースオブジェクトに直接アクセス

🔓 攻撃シナリオ:

root@kitploit:~
/profile?id=1   → アリスのデータ
/profile?id=2   → ボブのデータ(不正アクセス)

🔒 修正済みのセキュアな実装

例(セキュアなコード)

root@kitploit:~
@app.route('/profile')
def profile():
    requested_id = int(request.args.get("id", session["user_id"]))

    # オブジェクトレベルの認可チェック
    if requested_id != session["user_id"]:
        return "403 Forbidden - Access Denied", 403

    return users.get(requested_id)

✅ 適用されたセキュリティ修正

この実装は、以下を実施することで BOLA を防止します:

✔ セッションベースの認証 ✔ オブジェクト所有権の検証 ✔ サーバーサイドの認可チェック ✔ ID改ざん攻撃の防止


🧠 重要なセキュリティの教訓

サーバーサイドで認可を検証せずに、ユーザーから提供されたオブジェクト識別子を決して信頼してはいけません。

認証だけでは不十分です — 認可はオブジェクトレベルで強制されなければなりません。


📊 攻撃フロー vs セキュアフロー

❌ 脆弱なフロー:

root@kitploit:~
User → API Request (/profile?id=2) → Direct DB Access → Data Leak

✅ セキュアなフロー:

root@kitploit:~
User → API Request → Session Check → Ownership Validation → Allowed/Denied

🧪 実行方法

1. 依存関係のインストール

root@kitploit:~
pip install flask

2. アプリケーションの実行

root@kitploit:~
python fixed_vulnerable_api.py or vulnerable_api.py

3. アプリへのアクセス

root@kitploit:~
http://127.0.0.1:5000

📁 プロジェクト構成

root@kitploit:~
api-bola-demo/
│
├── vulnerable_api.py     # 安全でないバージョン
├── fixed_vulnerable_api.py   # BOLA修正版
└── README.md
ツールをダウンロード