Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2023-32692-CodeIgniter4 — Пример приложения, уязвимого к CVE-2023-32692 (внедрение правил проверки в PHP-фреймворке CodeIgniter) | Kitploit
Инструменты/GitHubGitHub/mogwailabs/cve-2023-32692-codeigniter4
Анализ уязвимостейАнализ КодаЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и ОбразованиеЛаборатории и Практика
GitHubmogwailabs/cve-2023-32692-codeigniter4

CVE-2023-32692-CodeIgniter4

Пример приложения, уязвимого к CVE-2023-32692 (внедрение правил проверки в PHP-фреймворке CodeIgniter)

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Репозиторий
23 месяцев назадЕщё не проверено

CVE-2023-32692 — Инъекция в правила валидации CodeIgniter 4

CVE-2023-32692 — это уязвимость внедрения кода в PHP-фреймворке CodeIgniter 4, затрагивающая версии с 4.0.0 по 4.3.4. Она была исправлена в версии 4.3.5 (выпущенной в июне 2023 года). Это демонстрационное окружение для всех, кто хочет с ней поэкспериментировать.

Подробности об уязвимости можно найти в блоге MOGWAI LABS.

Среда PoC

Этот репозиторий содержит минимальное приложение на CodeIgniter 4, демонстрирующее уязвимость. В него включена конфигурация Dev Container, поэтому вы можете развернуть его прямо из VS Code (или любого совместимого редактора) без необходимости локальной установки PHP.

Базовый Docker-контейнер использует PHP 8.3 и устанавливает расширение XDebug для возможности отладки. Дополнительные PHP-модули, необходимые фреймворку CodeIgniter, устанавливаются в виде локальных «функций Devcontainer» (Devcontainer features), в основном потому, что мне хотелось попробовать эту функцию.

Включены следующие расширения VS Code (все они устанавливаются внутри контейнера, а не в вашем экземпляре VS Code):

ExtensionPurpose
xdebug.php-debugПоддержка PHP XDebug — пошаговая отладка уязвимого участка кода
bmewburn.vscode-intelephense-clientPHP Intelephense для навигации по коду
humao.rest-clientHTTP-клиент для запуска включённых шаблонов запросов

Установка

  1. Откройте репозиторий в VS Code и переоткройте его в Dev Container, когда будет предложено (требуется Docker). Это может занять некоторое время.
  2. Необходимые пакеты устанавливаются автоматически через composer при сборке контейнера, здесь ничего делать не нужно.
  3. Скопируйте шаблон окружения:
root@kitploit:~
cp env .env

Запуск примера приложения

Dev Container включает Apache, но для этого PoC достаточно встроенного сервера разработки PHP. Откройте терминал в VS Code и выполните:

root@kitploit:~
./spark serve --host 0.0.0.0

Приложение будет доступно по адресу http://localhost:8080. Вы можете получить к нему доступ за пределами контейнера, используя свой обычный веб-браузер.


Отладка с помощью XDebug

Файл .vscode/launch.json настраивает XDebug на прослушивание TCP-порта 9003 (также указанного в Dockerfile Dev Container):

root@kitploit:~
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for Xdebug",
            "type": "php",
            "request": "launch",
            "port": 9003
        }
    ]
}

Запустите прослушиватель отладки до запуска сервера разработки PHP: нажмите значок «Run and Debug» на боковой панели VS Code и нажмите кнопку воспроизведения рядом с «Listen for Xdebug».

Отладка приложения внутри Dev Container


Уязвимый код

Уязвимый эндпоинт реализован в app/Controllers/Poc.php. Он предоставляет два маршрута:

RouteDescription
POST /poc/updateУязвимый эндпоинт — использует строковые правила валидации
POST /poc/updateSafeБезопасный эндпоинт — использует правила валидации на основе массивов

Установите точку останова в Poc::update() и проследите, как плейсхолдер {id} разворачивается в строку правил внутри механизма валидации CodeIgniter. Соответствующий код фреймворка находится в vendor/codeigniter4/framework/system/Validation/Validation.php.


Шаблоны HTTP-запросов

Папка http_requests/ содержит готовые к использованию шаблоны для расширения VS Code REST Client:

FileDescription
reqular_request.http

Откройте любой файл .http и нажмите Send Request над блоком запроса, чтобы выполнить его.

Скачать инструмент
Базовый легитимный запрос — без инъекции, валидация проходит нормально
basic_poc.httpВнедряет дополнительные правила валидации через параметр id
system_call.httpИспользует инъекцию для вызова system() и выполнения системной команды (touch /tmp/pwn)