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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
cve-2017-5487 — cve-2017-5487 wp rest api 脆弱性 | Kitploit
ツール/GitHubGitHub/tpdlshdmlrkfmcla/cve-2017-5487
偵察脆弱性分析エクスプロイト情報収集ウェブセキュリティ学習と教育
GitHubtpdlshdmlrkfmcla/cve-2017-5487

cve-2017-5487

cve-2017-5487 wp rest api 脆弱性

リポジトリを見る
1年前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
  1. CVE-2017-5487とは?

: WordPress 4.7.1 より前のバージョンにおいて、wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php にある REST API の実装では投稿者リストを制限していないため、リモート攻撃者が wp-json/wp/v2/users リクエストを通じて重要な情報を取得できる脆弱性。

( 参考 : https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5487 )

何を言っているのか分からないので、背景知識について調べた上で実践を通して理解していこう。

背景知識が不要だと思ったら [3] から見ればよい。

  1. REST APIとは?

: 簡単に言えば「何をどのようにするか」を定義した API を REST API と呼ぶことができる。

: もう少し詳しく説明すると、HTTP URI で定義されたリソースを HTTP メソッドとペイロードを使ってどのようにするかというのが REST API である。

: REST = REpresentational State Transter の略称

2.1 HTTP URI で定義されたリソース

: リソースとは処理される対象を意味する

ex) JSON、XML 文書、jpg などの画像ファイル、mp4 などのビデオファイルなどなど..

: URI とは Uniform Resource Identifier の略で、統合リソース識別子である。私たちがよく見る URL も URI の一部であり、何らかのリソースを識別するものを指す。

ex) http://rootable.tistory.com/user/test を通じて test というユーザーに関する情報を取得できるならば、これもまた URI である。

2.2 HTTP Method

: このメソッドは、リソースがどのような形式であっても関係なく同じように動作する。

: REST API で使用されるメソッドには POST、GET、PUT、PATCH、DELETE などがある。注意すべき点は、私たちが考える機能とは異なるということだ。例えば POST の場合、私たちはサーバーにデータや文書をリクエストするときに使うメソッドだと思うが、REST API の場合は作成(create)機能を行う。

  • HTTP Method と CRUD 演算のまとめ

HTTP Method

CRUD 演算

POST

create

GET

read

PUT

update / replace

PATCH

update / modify

DELETE

delete

  • CRUD 演算とは、コンピューターソフトウェアが基本的にデータを処理する際に使用する Create、Read、Update、Delete をまとめて指す言葉である。

ex) http://rootable.tistory.com の users に doni というユーザーを追加するという REST API

POST http://rootable.tistroy.com/users/doni

ex) ユーザー作成時に職業、年齢、性別などのさまざまな特性が必要な場合、XML や JSON などのさまざまな表現言語を Body 部分に明示して登録

POST http://rootable.tistory.com/users Content-Type: application/json

{

"username" : "doni"

"age" : "27"

}

  1. WordPress の REST API

: REST API はリソースをどうするかというあらかじめ定義された API だと述べた。それでは WordPress で定義された REST API には何があるだろうか?

以下の表を参考にしよう。

Resource Base Route Posts /wp/v2/posts Post Revisions /wp/v2/revisions Categories /wp/v2/categories Tags /wp/v2/tags Pages /wp/v2/pages Comments /wp/v2/comments Taxonomies /wp/v2/taxonomies Media /wp/v2/media Users /wp/v2/users Post Types /wp/v2/types Post Statuses /wp/v2/statuses Settings /wp/v2/settings さまざまな REST API が定義されていることが分かる。ここに、今回取り上げる CVE に出てくる /wp/v2/users があることが分かる。

  1. CVE の活用

4.1. 投稿者の情報の取得

  • 以下は EXPLOIT DB で見つけたコードである。( https://www.exploit-db.com/exploits/41497/ )

  • コードを見れば分かるように、単に処理結果をきれいに整理して画面に表示するだけである。わざわざこのエクスプロイトコードを使わなくても直接アクセスすれば情報を得られるので、きれいに見せるために FU 脆弱性にまで踏み込む必要はないと思う。

#!usr/bin/php

これを WordPress をインストールした場所に PHP コードとして保存して実行すると、以下のように結果が表示される。

直接アクセスする場合は以下のように表示される。(よく見えない場合はクリック)

これを通じて得られる情報は、記事を書いたユーザーの ID、name などの情報を取得できる。

参考) 登録されているすべてのユーザーが見えると思っていたが、テストした結果、投稿者のアカウントだけが見えるということだ。CVE の説明を見ると author という単語があるが、これがまさに投稿者という意味のようだ。

4.2 ファイルアップロードパスの取得

WordPress の REST API の中に /wp/v2/posts がある。これにアクセスすると、以下のように投稿した記事に関する情報が見えるが、その中で示したようにファイルアップロードパスを取得できる。FU 脆弱性が発見されれば大きな助けになると思われる。

  • posts の場合、情報が多すぎて表示されて不便な場合は、[ /wp-json/wp/v2/posts/20 ] にアクセスすれば 20 番目の記事の情報だけを取得できる。
  1. 参考

4.7 バージョンでも setting を表示したり記事を修正したりすることは不可能なようだ、

  • 設定を見ようとした場合、rest_forbidden が表示され、アクセスが拒否される。

  • 最初の記事を修正しようとした場合、記事を読むことができないというメッセージが表示される。

  • user を見ることよりもこれの方が重大なことだろうが、少し残念だ.. 検索結果によると、これに該当する脆弱性はないようだ。ただし、4.7.1 より前のバージョンに対して、他のユーザーの記事を修正できる脆弱性が存在するようだ。これについては次の投稿で取り上げていこう。

参考)

  1. REST API 説明 : http://blog.naver.com/PostView.nhn?blogId=complusblog&logNo=220986337770

  2. ユニコード翻訳 : http://koreanstudies.com/unicode-converter.html

  3. ダウングレード (やっていて進行できず再インストールしたので、新しくインストールすることをお勧めする)

: http://www.bbsetheme.co.kr/%EC%9B%8C%EB%93%9C%ED%94%84%EB%A0%88%EC%8A%A4-%EB%B2%84%EC%A0%84-%EB%8B%A4%EC%9A%B4%EA%B7%B8%EB%A0%88%EC%9D%B4%EB%93%9C-%ED%95%98%EA%B8%B0/

ツールをダウンロード