
Cake Fuzzer — это проект, предназначенный для автоматического и непрерывного обнаружения уязвимостей в веб-приложениях, созданных на основе определенных фреймворков, с очень малым количеством ложных срабатываний.
Последний релиз: 1.0
Лицензия: GNU GPL v3.0
Cake Fuzzer — это проект, предназначенный для автоматического и непрерывного обнаружения уязвимостей в веб-приложениях, созданных на основе определённых фреймворков, с минимальным количеством ложных срабатываний. В настоящее время он реализован для поддержки фреймворка CakePHP.
Если вы хотите узнать больше о процессе исследования, ознакомьтесь с этой серией статей: Исследование кибербезопасности приложений CakePHP
Ниже приведён список некоторых ошибок, обнаруженных Cake Fuzzer:
| Название | Критичность | Ссылка |
|---|---|---|
| Слепая SQL-инъекция в Cerebrate | 9.8 Критический | https://zigrin.com/advisories/cerebrate-blind-sql-injection/ |
| SQL-инъекция в компоненте CRUD | 8.8 Высокий | https://zigrin.com/advisories/misp-sql-injection-in-crud-component/ |
| DOM-основанный XSS | 6.1 Средний | https://zigrin.com/advisories/misp-dom-based-xss/ |
| Слепая SQL-инъекция в параметре order | 8.8 Высокий | https://zigrin.com/advisories/misp-blind-sql-injection-in-order-parameter/ |
| Слепая SQL-инъекция в параметрах массива ввода | 8.8 Высокий | https://zigrin.com/advisories/misp-blind-sql-injection-in-array-input-parameters/ |
| SQL-инъекция на основе времени в /Logs/index | 7.2 Высокий | https://zigrin.com/advisories/misp-time-based-sql-injection-in-logs-index/ |
Типичные подходы к обнаружению уязвимостей в веб-приложениях с помощью автоматизированных инструментов:
Оба метода имеют недостатки. SAST даёт высокий процент ложных срабатываний – находок, которые либо не являются уязвимостями, либо не могут быть эксплуатированы. DAST даёт меньше ложных срабатываний, но обнаруживает меньше уязвимостей из-за ограниченной информации. Также он требует определённых знаний о приложении и опыта в области безопасности от лица, запускающего сканирование. Часто для корректной работы требуется настройка сканирования для каждого приложения.
Проект Cake Fuzzer призван объединить преимущества обоих подходов и устранить указанные недостатки. Этот подход называется интерактивное тестирование безопасности приложений (IAST).
Цели проекта:
Примечание: Некоторые классы уязвимостей не являются целью Cake Fuzzer, поэтому он не сможет их обнаружить. Примеры таких классов: уязвимости бизнес-логики и проблемы контроля доступа.

Drawio: Архитектура Cake Fuzzer
Cake Fuzzer состоит из 3 основных (достаточно независимых) серверов, которые в совокупности позволяют проводить динамическое тестирование уязвимостей приложений CakePHP.
Другие компоненты:
Cake Fuzzer основан на концепции интерактивного тестирования безопасности приложений (IAST). Он содержит предопределённый набор атак, которые случайным образом модифицируются перед выполнением. Благодаря знанию внутреннего устройства приложения через фреймворк CakePHP, атаки запускаются на всех возможных точках входа приложения.
Во время атаки Cake Fuzzer отслеживает различные аспекты приложения и базовой системы, такие как:
Эти источники информации позволяют Cake Fuzzer выявлять больше уязвимостей и сообщать о них с более высокой уверенностью.
В следующем разделе описаны шаги по настройке среды разработки Cake Fuzzer, где целевым приложением является устаревший MISP v2.4.146, уязвимый к CVE-2021-41326.
Выполните следующие команды на вашей хост-операционной системе для загрузки устаревшей виртуальной машины MISP:
cd ~/Downloads # Или любое другое место, где вы хотите хранить 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
Выполните следующие действия в GUI VMWare, чтобы подготовить общий доступ к файлам Cake Fuzzer между хост-ОС и MISP:
cake_fuzzer на виртуальной машине.Выполните следующие команды на хост-ОС (замените MISP_IP_ADDRESS на ранее записанный IP-адрес):
ssh-copy-id misp@MISP_IP_ADDRESS
ssh misp@MISP_IP_ADDRESS
После подключения по SSH к MISP выполните следующие команды (в терминале MISP), чтобы завершить настройку общего доступа к файлам Cake Fuzzer между хост-ОС и 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 # Примечание: этот путь фиксирован, так как он жёстко прописан в инструментации (один из патчей)
sudo vmhgfs-fuse .host:/cake_fuzzer /cake_fuzzer -o allow_other -o uid=1000 -o max_write=61440
# max_write исправляет странную ошибку копирования файлов: https://github.com/vmware/open-vm-tools/issues/437#issuecomment-669663891
ls -l /cake_fuzzer # Если всё прошло успешно, вы должны увидеть содержимое каталога Cake Fuzzer с хост-ОС. Любые изменения на хост-ОС отразятся внутри ВМ и наоборот.
Подготовьте MISP для простого тестирования (в терминале MISP):
CAKE=/var/www/MISP/app/Console/cake
SUDO='sudo -H -u www-data'
$CAKE userInit -q
$SUDO $CAKE Admin setSetting "Security.password_policy_length" 1
$SUDO $CAKE Admin setSetting "Security.password_policy_complexity" '/.*/'
$SUDO $CAKE Password [email protected] admin --override_password_change