
Cake Fuzzer é um projeto que visa ajudar a descobrir automaticamente e continuamente vulnerabilidades em aplicações web criadas com base em frameworks específicos, com falsos positivos muito limitados.
Último lançamento: 1.0
Licença: GNU GPL v3.0
Cake Fuzzer é um projeto que tem como objetivo ajudar a descobrir vulnerabilidades de forma automática e contínua em aplicações web criadas com base em frameworks específicos, com um número muito limitado de falsos positivos. Atualmente, está implementado para suportar o framework Cake PHP.
Se quiser saber mais sobre o processo de pesquisa, veja esta série de artigos: Pesquisa em Cibersegurança de Aplicações CakePHP
Abaixo está uma lista de alguns dos bugs descobertos pelo Cake Fuzzer:
| Título | Gravidade | Link |
|---|---|---|
| Injeção SQL cega no Cerebrate | 9.8 Crítico | https://zigrin.com/advisories/cerebrate-blind-sql-injection/ |
| Injeção SQL no componente CRUD | 8.8 Alto | https://zigrin.com/advisories/misp-sql-injection-in-crud-component/ |
| XSS baseado em DOM | 6.1 Médio | https://zigrin.com/advisories/misp-dom-based-xss/ |
| Injeção SQL cega no parâmetro order | 8.8 Alto | https://zigrin.com/advisories/misp-blind-sql-injection-in-order-parameter/ |
| Injeção SQL cega em parâmetros de entrada de array | 8.8 Alto | https://zigrin.com/advisories/misp-blind-sql-injection-in-array-input-parameters/ |
| Injeção SQL baseada em tempo em /Logs/index | 7.2 Alto | https://zigrin.com/advisories/misp-time-based-sql-injection-in-logs-index/ |
As abordagens típicas para descobrir vulnerabilidades usando ferramentas automatizadas em aplicações web são:
Ambos os métodos têm desvantagens. O SAST resulta numa elevada percentagem de falsos positivos – achados que ou não são vulnerabilidades ou não são vulnerabilidades exploráveis. O DAST resulta em menos falsos positivos, mas descobre menos vulnerabilidades devido à informação limitada. Também requer algum conhecimento sobre a aplicação e uma base de segurança da pessoa que executa a análise. Isto muitas vezes vem com uma configuração de análise personalizada por aplicação para funcionar corretamente.
O projeto Cake Fuzzer pretende combinar as vantagens de ambas as abordagens e eliminar as desvantagens mencionadas. Esta abordagem é chamada de Teste de Segurança Interativo de Aplicações (IAST).
Os objetivos do projeto são:
Nota: Algumas classes de vulnerabilidades não são alvo do Cake Fuzzer, portanto o Cake Fuzzer não será capaz de as detetar. Exemplos dessas classes são vulnerabilidades de lógica de negócio e problemas de controlo de acesso.

Drawio: Arquitetura do Cake Fuzzer
O Cake Fuzzer consiste em 3 servidores principais (razoavelmente independentes) que, no total, permitem testes dinâmicos de vulnerabilidades em aplicações CakePHP.
Outros componentes incluem:
O Cake Fuzzer baseia-se no conceito de Teste de Segurança Interativo de Aplicações (IAST). Contém um conjunto predefinido de ataques que são modificados aleatoriamente antes da execução. O Cake Fuzzer tem conhecimento dos internos da aplicação graças ao framework Cake PHP, portanto os ataques serão lançados em todos os pontos de entrada possíveis da aplicação.
Durante o ataque, o Cake Fuzzer monitoriza vários aspetos da aplicação e do sistema subjacente, tais como:
Estas fontes de informação permitem que o Cake Fuzzer identifique mais vulnerabilidades e as reporte com maior certeza.
A secção seguinte descreve os passos para configurar um ambiente de desenvolvimento do Cake Fuzzer onde o alvo é o MISP desatualizado v2.4.146, vulnerável ao CVE-2021-41326.
Execute os seguintes comandos no seu sistema operativo anfitrião para descarregar uma VM MISP desatualizada:
cd ~/Downloads # Ou onde quiser armazenar a 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
Execute as seguintes ações na GUI do VMWare para preparar a partilha de ficheiros do Cake Fuzzer entre o seu SO anfitrião e o MISP:
Execute os seguintes comandos no seu SO anfitrião (substitua MISP_IP_ADDRESS pelo endereço IP anotado anteriormente):
ssh-copy-id misp@MISP_IP_ADDRESS
ssh misp@MISP_IP_ADDRESS
Assim que fizer SSH para o MISP, execute os seguintes comandos (no terminal MISP) para finalizar a configuração da partilha de ficheiros do Cake Fuzzer entre o SO anfitrião e o 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: Este caminho é fixo pois está hardcoded na instrumentação (um dos patches)
sudo vmhgfs-fuse .host:/cake_fuzzer /cake_fuzzer -o allow_other -o uid=1000 -o max_write=61440
# max_write corrige um bug estranho de cópia de ficheiros: https://github.com/vmware/open-vm-tools/issues/437#issuecomment-669663891
ls -l /cake_fuzzer # Se tudo correu bem, deve ver o conteúdo do diretório Cake Fuzzer do seu SO anfitrião. Quaisquer alterações no SO anfitrião serão refletidas dentro da VM e vice-versa.