ツイート
シェア
LINEで送る
B! はてぶでブックマーク
Pocketでブックマーク
RSSフィード

WordPress, 不正アクセスのログ解析で分かる。xmlrpc, REST APIは要注意。

ハッカー

ご覧のページは 4 / 6 です。先頭ページはこちら。

Step4. REST APIからユーザー情報を取ろうとする。

1.857 - create 159.242.234.106 - - [17/Apr/2021:06:23:12 +0900] "GET //wp-json/wp/v2/users/ HTTP/1.1" 401 198 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4240.193 Safari/537.36" "-"

このリクエストはREST APIを使ってユーザー一覧を取得するものです。自分のサイトでこのリクエストを送信してみてください。

ブラウザからURL入力するだけでOK。すると、すべてのユーザーパスワード以外のすべての情報が取得できます。危険。

(内容はお見せしません。自分で確認してください。)

REST API (Representational State Transfer API)

URLを指定すると常に同じ結果を返すAPI。

URLはユニークで、決まった処理のリクエストになるので、シンプルでわかりやすいのが特長。

処理を受けるサーバーも、URLを見れば何をすれば分かるのでシンプルで実装しやすい。

結果は、HTML, XML, JSONなどで返す。

最近のWebサービスで提供されるAPIはREST APIが多い。

Facebook, Twitterなどもそう。また、ECサイトと在庫管理などのWebサービスと連携するときにもREST APIを使う。

Webサービスでは情報取得、情報の追加・更新・削除などのAPIが提供されるが、その説明にURLを指定するものはREST APIであることが多い。

もうひとつ、セッションを使わないのが特長。

セッションを使わずに1リクエストで処理が完結するため、アクセス数やリクエスト数の多いサイトに適している。(SNSなど)

セッションハイジャックがないので、情報漏えいや不正なリクエストも防ぐことができる。

-> くわしい内容 Wikipedia

REST APIを無効化するのもひとつの手なんですが、それだと投稿編集(Gutenberg)でカスタム投稿タイプ・カスタムタクソノミーが使えなくなるのでかなり痛い。

これもさっきのWordfence Securityをインストールするだけで解決できます。

さっきのREST APIリクエストをもう一度してみてください。レスポンスのJSONデータのステータスで『Unauthorized (401)』(認証の未承認)が返り、ユーザー情報は表示されません。

wp-json ってなんだ?

WordPressでは、REST APIを実装する機能が用意されていて、自分のサイトにどれくらいのAPIが実装されているか確認できます。

https://(your domain)/wp-json/

URLに "wp-json" がついているのは、REST APIのレスポンスをjson形式に変換しているから。このjson形式に変換するのも一つの機能で、ajaxでも使われます。

WordPressのREST APIではインタフェースのjsonラッパーだと思って下さい。

REST API リクエスト

WPが処理を実行してデータ作成

WPがデータをjson形式に変換

Webサーバーがデータ(レスポンス)を返す。

REST APIには認証なしでも情報取得できるものがある

ここからが大事なところで、WordPressのREST APIでは認証なしでもたくさんの情報が取れます。REST APIだけでもうひとつ同じサイトが作れるほど。やろうと思えば丸パクりサイトさえ作れます。

(これはこれで便利。もともとサイトで公開されている情報なので問題はない。)

それに加えプラグインが独自のREST APIを追加しているので、ひとつひとつのセキュリティチェックをするのには根気がいる。

既存機能を損ねる可能性もあるので安易に無効化することもできません。

WordPressはver5になってから、編集画面が大きく変わり便利になりました。

Gutenbergを採用したから。GutenbergはREST APIを多用しています。

REST APIを無効化すると、カテゴリやタグの項目が出なくなったり、URL入力の検索機能が効かなくなったり、SNSの埋め込みができなくなったりします。

というか、ただのエディタになってしまいGutenbergを活かしきれない。

このあたりもセキュリティプラグインはチェックしてくれます。さっきのWordfenceもそう。Wordfenceは既存機能を維持したまま、セキュリティ上危険なREST APIを無効化します。

さっきのユーザー一覧取得のREST APIがその例。

次は Step5. oEmbedから情報を取ろうとする。
前は Step3. WordPressのログインユーザー名を取ろうとする。

WordPressの本

post-cta-image

たくさんあるなかで、WordPressの基本が学べる、目的別に学べる本を選びました。

  • WordPressの基本。
  • Webサイト作成から運用まで全体的に学ぶ。
  • かんたんなカスタマイズを学ぶ。
  • 何も分からないところから学ぶ。
  • WordPressからPHPプログラミングを学ぶ。

の5冊です。どうしてもネット上で調べて勉強するのが苦手という人におすすめです。

この内容をモノにすればほかの本は必要ありません。あとは自分の力で、書籍を使わずにインターネット上にある情報だけで学んでいけます。

コメントを残す

*