
Cake Fuzzer è un progetto pensato per aiutare a scoprire automaticamente e continuamente vulnerabilità in applicazioni web create sulla base di framework specifici, con un numero molto limitato di falsi positivi.
Ultima versione: 1.0
Licenza: GNU GPL v3.0
Cake Fuzzer è un progetto che ha lo scopo di aiutare a scoprire automaticamente e continuamente vulnerabilità in applicazioni web create basate su framework specifici, con un numero molto limitato di falsi positivi. Attualmente è implementato per supportare il framework Cake PHP.
Se desideri saperne di più sul processo di ricerca, dai un'occhiata a questa serie di articoli: CakePHP Application Cybersecurity Research
Di seguito è elencata una lista di alcuni bug scoperti da Cake Fuzzer:
| Titolo | Gravità | Collegamento |
|---|---|---|
| Iniezione SQL cieca in Cerebrate | 9.8 Critico | https://zigrin.com/advisories/cerebrate-blind-sql-injection/ |
| Iniezione SQL nel componente CRUD | 8.8 Alto | https://zigrin.com/advisories/misp-sql-injection-in-crud-component/ |
| XSS basato su DOM | 6.1 Medio | https://zigrin.com/advisories/misp-dom-based-xss/ |
| Iniezione SQL cieca nel parametro order | 8.8 Alto | https://zigrin.com/advisories/misp-blind-sql-injection-in-order-parameter/ |
| Iniezione SQL cieca nei parametri di input array | 8.8 Alto | https://zigrin.com/advisories/misp-blind-sql-injection-in-array-input-parameters/ |
| Iniezione SQL basata sul tempo in /Logs/index | 7.2 Alto | https://zigrin.com/advisories/misp-time-based-sql-injection-in-logs-index/ |
Gli approcci tipici per scoprire vulnerabilità utilizzando strumenti automatizzati nelle applicazioni web sono:
Entrambi i metodi presentano svantaggi. Il SAST produce un'alta percentuale di falsi positivi – risultati che non sono vulnerabilità o che non sono vulnerabilità sfruttabili. Il DAST produce meno falsi positivi ma scopre meno vulnerabilità a causa delle informazioni limitate. Richiede inoltre una certa conoscenza dell'applicazione e un background di sicurezza da parte della persona che esegue la scansione. Spesso ciò comporta una configurazione personalizzata per ogni applicazione per funzionare correttamente.
Il progetto Cake Fuzzer mira a combinare i vantaggi di entrambi gli approcci ed eliminare gli svantaggi sopra menzionati. Questo approccio è chiamato Interactive Application Security Testing (IAST).
Gli obiettivi del progetto sono:
Nota: Alcune classi di vulnerabilità non sono l'obiettivo di Cake Fuzzer, quindi Cake Fuzzer non sarà in grado di rilevarle. Esempi di queste classi sono le vulnerabilità di logica aziendale e i problemi di controllo degli accessi.

Drawio: Cake Fuzzer Architecture
Cake Fuzzer è composto da 3 server principali (abbastanza indipendenti) che, nel complesso, consentono test dinamici delle vulnerabilità delle applicazioni CakePHP.
Altri componenti includono:
Cake Fuzzer si basa sul concetto di Interactive Application Security Testing (IAST). Contiene un insieme predefinito di attacchi che vengono modificati casualmente prima dell'esecuzione. Cake Fuzzer ha conoscenza degli interni dell'applicazione grazie al framework Cake PHP, quindi gli attacchi verranno lanciati su tutti i possibili punti di ingresso dell'applicazione.
Durante l'attacco, Cake Fuzzer monitora vari aspetti dell'applicazione e del sistema sottostante come:
Queste fonti di informazioni permettono a Cake Fuzzer di identificare più vulnerabilità e segnalarle con maggiore certezza.
La sezione seguente descrive i passaggi per configurare un ambiente di sviluppo Cake Fuzzer in cui il target è la vecchia versione MISP v2.4.146, vulnerabile a CVE-2021-41326.
Esegui i seguenti comandi sul tuo sistema operativo host per scaricare una VM MISP obsoleta:
cd ~/Downloads # O dove desideri archiviare la VM MISP
wget https://vm.misp-project.org/MISP_v2.4.146@0c25b72/[email protected] -O MISP.zip
unzip MISP.zip
rm MISP.zip
mv VMware/ MISP-2.4.146
Esegui le seguenti azioni nell'interfaccia grafica di VMWare per preparare la condivisione dei file di Cake Fuzzer tra il sistema host e MISP:
Esegui i seguenti comandi sul tuo sistema operativo host (sostituisci MISP_IP_ADDRESS con l'indirizzo IP annotato in precedenza):
ssh-copy-id misp@MISP_IP_ADDRESS
ssh misp@MISP_IP_ADDRESS
Una volta effettuato l'SSH in MISP, esegui i seguenti comandi (nel terminale MISP) per completare la configurazione della condivisione dei file di Cake Fuzzer tra sistema host e MISP:
sudo apt update
sudo apt-get -y install open-vm-tools open-vm-tools-desktop
sudo apt-get -y install build-essential module-assistant linux-headers-virtual linux-image-virtual && sudo dpkg-reconfigure open-vm-tools
sudo mkdir /cake_fuzzer # Nota: Questo percorso è fisso poiché è hardcoded nell'instrumentazione (una delle patch)
sudo vmhgfs-fuse .host:/cake_fuzzer /cake_fuzzer -o allow_other -o uid=1000 -o max_write=61440
# max_write risolve un bug strano di copia dei file: https://github.com/vmware/open-vm-tools/issues/437#issuecomment-669663891
ls -l /cake_fuzzer # Se tutto è andato bene, dovresti vedere il contenuto della directory Cake Fuzzer dal tuo sistema host. Qualsiasi modifica sul sistema host si rifletterà nella VM e viceversa.