実証データ: WordPress REST API 経由の管理者情報漏洩

対象: https://rinn-kyomachi.com/ 取得日時: 2026-04-23 12:51 JST 調査: BB社
一般公開されているURL1つにアクセスするだけで、 管理者・編集者の存在、ログインID候補、隠し管理画面URL、開発用サイトの所在 が外部から取得できる状態にあることを確認しました。本ページはその一次データです。

1. 検証手順(誰でも再現可能)

特別なツール、認証情報、権限は一切不要です。以下のURLをブラウザのアドレスバーに貼り付けるか、cURLコマンドを実行するだけで同じデータが取得できます。

アクセスしたURL

https://rinn-kyomachi.com/wp-json/wp/v2/users

実行コマンド

curl -s https://rinn-kyomachi.com/wp-json/wp/v2/users

2. サーバーからの応答ヘッダ

HTTPステータス 200 OK(正常応答)で、認証不要でレスポンスが返ってきます。

HTTP/2 200
server: nginx
date: Thu, 23 Apr 2026 03:51:09 GMT
content-type: application/json; charset=UTF-8
x-robots-tag: noindex
access-control-expose-headers: X-WP-Total, X-WP-TotalPages, Link
x-wp-total: 2
x-wp-totalpages: 1
allow: GET

注目: x-wp-total: 2 の表示により、このサイトに登録されているユーザーは合計2名であることが外部から確定できます。

3. 取得された一次データ(整形済みJSON)

下記はAPIから実際に返却されたJSONを人間が読みやすい形式に整形したものです。原本は evidence/wp-json-users-response.json に保管。

[
  {
    "id": 1,
    "name": "鈴管理者",
    "url": "https://chk.rinn-kyomachi.com/wp-rinn",
    "description": "",
    "link": "https://rinn-kyomachi.com/mn29cgv2eukv/h2vq6g8rchah/",
    "slug": "h2vq6g8rchah",
    "yoast_head_json": {
      "title": "鈴管理者 (京都にある町家の宿、京まち宿「鈴」…の投稿者)",
      "og_image": [
        { "url": "https://secure.gravatar.com/avatar/0b362881045aba0689d5ed6af08e227d?s=500&d=mm&r=g" }
      ],
      "schema": {
        "@graph": [
          {
            "@type": "Person",
            "name": "鈴管理者",
            "sameAs": [ "https://chk.rinn-kyomachi.com/wp-rinn" ]
          }
        ]
      }
    }
  },
  {
    "id": 2,
    "name": "鈴編集者",
    "url": "",
    "description": "",
    "link": "https://rinn-kyomachi.com/mn29cgv2eukv/ayvenv2pumdi/",
    "slug": "ayvenv2pumdi",
    "yoast_head_json": {
      "og_image": [
        { "url": "https://secure.gravatar.com/avatar/42977733aac2e2997fdbdb3427a97ffb?s=500&d=mm&r=g" }
      ]
    }
  }
]

4. このデータから何が判明したか

JSONの各フィールドから、攻撃者が喜ぶ情報がこれだけ読み取れます。

JSON項目 そこから判明する事実 リスク度 何が問題か(非技術者向け)
"id": 1
"name": "鈴管理者"
管理者アカウントが存在。表示名は「鈴管理者」 CRITICAL WordPressの仕様上、id=1は最初に作成された管理者。つまり攻撃者は「誰を狙えばいいか」を1秒で特定できる
"slug": "h2vq6g8rchah" 管理者のログインID候補 CRITICAL WordPressのデフォルト設定では、この文字列がそのままログインIDに一致することが多い。つまり「家の鍵穴の中に挿す鍵の形」を外から配布している状態
"link": "https://rinn-kyomachi.com/mn29cgv2eukv/h2vq6g8rchah/" 管理画面ログインURLの難読化パス /mn29cgv2eukv/ が漏洩 CRITICAL 制作会社は「ログイン画面のURLをランダム文字列にして隠した」つもりだが、API経由でそのランダム文字列が完全に漏れている。隠す意味がゼロ
"url": "https://chk.rinn-kyomachi.com/wp-rinn" ステージング環境(開発用サイト)の存在とURL HIGH 本番と別に開発用サイトが存在し、どこにあるかまで判明。現地調査の結果、Basic認証はかかっていたが、存在自体が攻撃対象になる
"id": 2
"name": "鈴編集者"
"slug": "ayvenv2pumdi"
編集者アカウントの存在とログインID候補 CRITICAL 攻撃対象が1人ではなく2人確保された
Gravatar MD5 hash
0b362881045aba...
管理者の登録メールアドレスのハッシュ値 MEDIUM MD5ハッシュから元のメールアドレスを逆引きされる可能性あり(現時点でGravatar画像未登録のため、逆引き難易度は中)
Yoast SEO plugin v18.0 古いバージョンのSEOプラグインを使用中 MEDIUM 2022年11月リリースのバージョン。3年半更新なし。既知の脆弱性が放置されている可能性

5. この漏洩が現実にもたらす最悪シナリオ

シナリオ: サイト乗っ取り

  1. 攻撃者がこのAPIで「管理者ID = h2vq6g8rchah」「ログイン画面 = /mn29cgv2eukv/」を取得
  2. ログイン画面にアクセスし、パスワードを自動で数万〜数百万通り試す(ブルートフォース攻撃)
  3. 弱いパスワードであれば数時間〜数日で侵入成功
  4. ログイン成功後、サイト全ページに悪意あるコードを仕込む
  5. 予約しようと訪れた顧客のPCにウイルス感染。レアル社が加害者扱いになる

シナリオ: 情報抜き取り

  1. ステージング環境 chk.rinn-kyomachi.com の存在を把握
  2. Basic認証のパスワードが弱ければ(例: admin/admin, test/test)、突破される
  3. ステージング環境には本番と同じコードと、時として本番のデータベースコピーも置かれている
  4. 顧客情報・予約情報の抜き取りが発生する

6. 家のセキュリティに例えると

玄関の外に「お父さんの名前」「お父さんが使っている鍵穴のある場所」「裏口の存在」を書いた看板を立てているのと同じです。 泥棒はその看板を見るだけで、あとは鍵を開ける道具を試すだけで済みます。 家の鍵をわざわざ難しい形状にしても、鍵穴の場所が外から丸見えなら意味がありません。

7. 対応項目

本件の解消には、以下の対応を現制作会社様にご依頼いただくのが適切です。