Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
bola-CVE-2023-27524 — Dimostra la vulnerabilità CVE-2023-27524 di Broken Object Level Authorization (BOLA) con implementazioni Flask API vulnerabili e corrette per la formazione sulla sicurezza. | Kitploit
Strumenti/GitHubGitHub/rachidafaf/bola-cve-2023-27524
Autenticazione e AutorizzazioneAnalisi delle VulnerabilitàSfruttamento di Applicazioni WebTest di Sicurezza delle APIPenetration TestingApprendimento e Formazione
GitHubrachidafaf/bola-cve-2023-27524

bola-CVE-2023-27524

Dimostra la vulnerabilità CVE-2023-27524 di Broken Object Level Authorization (BOLA) con implementazioni Flask API vulnerabili e corrette per la formazione sulla sicurezza.

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Vedi Repository
4 mesi faNon ancora revisionato

bola-CVE-2023-27524

📄 README.md — BOLA CVE-2023-27524 Progetto dimostrativo

root@kitploit:~
# 🔐 Dimostrazione di Broken Object Level Authorization (BOLA)  
## CVE-2023-27524 Analisi di sicurezza e correzione

---

## 📌 Panoramica del progetto

Questo progetto dimostra una vulnerabilità reale di **Broken Object Level Authorization (BOLA)** e la sua correzione sicura utilizzando un'API basata su Flask.

La vulnerabilità è modellata su **CVE-2023-27524**, che comporta controlli di autorizzazione inadeguati che permettono agli attaccanti di accedere o manipolare oggetti non autorizzati modificando identificatori di oggetti (ID) nelle richieste API.

Questo repository include:
- ❌ vulnerable_api.py: Una versione vulnerabile dell'API
- ✅ fixed_vulnerable_api.py: Una versione corretta e sicura che implementa una corretta autorizzazione a livello di oggetto

---

## ⚠️ Cos'è BOLA?

**Broken Object Level Authorization (BOLA)** si verifica quando un'applicazione:
- Espone ID di oggetti (es. `/profile?id=2`)
- Non verifica se l'utente autenticato è autorizzato ad accedere a quell'oggetto

### 🔴 Impatto:

Gli attaccanti possono:
- Accedere ai dati privati di altri utenti
- Modificare o eliminare risorse non autorizzate
- Eseguire escalation orizzontale dei privilegi

---

## 💥 Implementazione vulnerabile

### Esempio (Codice vulnerabile)

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

### ❌ Problema:

* Nessun controllo di autenticazione
* Nessuna validazione di proprietà
* ID controllato dall'utente accede direttamente agli oggetti del database

### 🔓 Scenario di sfruttamento:

```
/profile?id=1   → dati di Alice
/profile?id=2   → dati di Bob (accesso non autorizzato)
```

---

## 🔒 Implementazione sicura corretta

### Esempio (Codice sicuro)

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

    # Object-level authorization check
    if requested_id != session["user_id"]:
        return "403 Forbidden - Access Denied", 403

    return users.get(requested_id)
```

---

## ✅ Correzioni di sicurezza applicate

Questa implementazione previene BOLA applicando:

✔ Autenticazione basata su sessione  
✔ Validazione della proprietà dell'oggetto  
✔ Controlli di autorizzazione lato server  
✔ Prevenzione degli attacchi di manipolazione degli ID  

---

## 🧠 Lezione chiave sulla sicurezza

> Non fidarsi mai degli identificatori di oggetti forniti dall'utente senza verificare l'autorizzazione lato server.

L'autenticazione NON è sufficiente — **l'autorizzazione deve essere applicata a livello di oggetto.**

---

## 📊 Flusso di attacco vs flusso sicuro

### ❌ Flusso vulnerabile:

```
Utente → Richiesta API (/profile?id=2) → Accesso diretto al DB → Perdita di dati
```

### ✅ Flusso sicuro:

```
Utente → Richiesta API → Controllo sessione → Validazione proprietà → Consentito/Negato
```

---

## 🧪 Come eseguire

### 1. Installare le dipendenze

```bash
pip install flask
```

### 2. Eseguire l'applicazione

```bash
python fixed_vulnerable_api.py or vulnerable_api.py
```

### 3. Accedere all'app

```
http://127.0.0.1:5000
```

---

## 📁 Struttura del progetto

```
api-bola-demo/
│
├── vulnerable_api.py     # versione insicura
├── fixed_vulnerable_api.py   # Versione BOLA corretta
└── README.md
```
Scarica lo strumento