WordPress 4.7, 4.7.1 脆弱性の検証 | ITオフィスサポートとシステム開発|システムガーディアン AWSクラウド導入|東京都中央区八丁堀

ITサポート出張、ITシステム開発・保守をワンストップで|AWSクラウド|東京都中央区八丁堀

ITオフィスサポートとシステム開発|システムガーディアン AWSクラウド導入|東京都中央区八丁堀

電話でのお問い合わせ

WordPress 4.7, 4.7.1 脆弱性の検証

      2017/02/19

WordPress4.7脆弱性

皆様はじめまして、新人エンジニアの小松と申します。

 

本日は最近起きたWordPressの脆弱性についての記事を書くことにします。

WordPress 4.7 / 4.7.1 における脆弱性

WordPress4.7

昨今では多くのブログサイトで使用されているWordPress

 

 

WordPressは豊富なプラグインや多彩な外見テーマのおかげでphpに詳しくなくとも手軽に編集できるのを強みとしているオープンソースのブログ/CMS プラットフォームです。しかしそんなWordPressで最近、ショッキングなニュースが話題となりました。
バージョン4.7, 4.7.1のWordPressに脆弱性があり、専門的な知識がなくても悪用することができる深刻なものでした。事態が事態だけにWordPress側もすぐにはその脆弱性を公表できませんでした。

 

その脆弱性を突かれるとどうなるかですが、攻撃側が容易にコンテンツを望むように改ざんできてしまいます。ブログサイトが台無しにされるだけでなく、悪意のある攻撃の踏み台にされる、そのブログサイトそのものに罠を埋め込むこまれるなど攻撃者の道具として悪事に加担させられる可能性もあります。

 

技術的な説明として徳丸氏のサイトより引用させていただきます。

 

>存在しないコンテンツが指定された場合、update_item_permissions_checkメソッドの様々なチェックをすべてくぐり抜け、メソッド最後のreturn文にて true が返されるところが恐ろしいですね。
しかし、この「存在しないコンテンツ」については、以下の update_item メソッドの 526行目にてエラーが返され、結果としては何もしない *はず* でした。
ところが、id=1A が指定された場合に、update_item_permissions_checkメソッドとupdate_itemメソッドの両方で呼ばれている get_post関数が受け取るパラメータを確認してみましょう。

>update_item_permissions_checkでは、get_post(‘1A’)が呼ばれ、1AをIDとするコンテンツはないため、「コンテンツは存在しない」が返され、チェック結果は true となります(!)。
一方、update_itemメソッドは、$id を整数にキャストしているため、get_post(1)が呼ばれ、ID=1 のコンテンツが変更されることになります。これにより、本来権限のないコンテンツ ID=1 に対する更新ができてしまうことになります。

@see WordPress 4.7.1 の権限昇格脆弱性について検証した

 

 

今回私は、実際に自らの手でWordPressの脆弱性を突いてみて結果を観測してみることとしました。

実験

WordPress4.7脆弱性

EXPLOIT DATABASEにて公開されているコード。赤枠で括られた部分がコンテンツとして改ざんされます

用意したものはOracle VM VirtualBoxで立ち上げたCentos6.8にWordPressのバージョン4.7をサーバー側として設定

 

一方で攻撃側は、サーバー側と同じくOracle VM VirtulboxでKali Linux(amd64)を攻撃側として用意しました。
インジェクションに使うスクリプトはrubyなので、攻撃側にはrubyを使える環境に整える必要があります。(今回は攻撃者というイメージでKali Linuxを指定しましたが、rubyを使える環境であればほかのディストリビューションでも問題ありません。)

 

 

ローカルでWordPressのブログサイトを立ち上げればサーバー側は準備完了です。EXPLOIT DATABASEにて公開されているコードを攻撃側がスクリプトとして実行します。

 

 

この後に対象のWordPressのURLを指定します。そしてその次にポストIDが問われますが、本来なら存在しないIDは弾くこの部分が存在しないIDを弾かずに通してしまいます。
従って、例えばここで

とだけ入力することで認証を通過し、標的となったサイトを改ざんするスクリプトのリクエストが通ってしまいます。

WordPress脆弱性

赤枠で括られた部分が改ざんされたもの

 

 

恐ろしいことに、たったこれだけで4.7または4.7.1バージョンのWordPressの改ざんは可能なのです。このシンプルかつ深刻な脆弱性は、バージョンを4.7.2にあげることで防ぐことができます。もしもご利用のWordPressのバージョンが未だに4.7または4.7.1でしたのなら即刻バージョンアップさせることを推奨します。

 

小松小松( エンジニア )
去年の6月にセキュリティカンファレンスで弊社に出会い、10月中旬に入社しました。現在はシステムセキュリティ分野を専攻しています。

 

 

 - 小松, サイバーセキュリティ

  関連記事

F5攻撃 mod_evasive
Apache F5攻撃対策 mod_evasiveでDoS攻撃防御

目次1 誰でもできるDos攻撃 それがF5攻撃2 今回はApacheモジュールのmod_evasiveのご紹介3 コンフィグテスト4 実際のサイトでの表示 誰で …

セキュリティ
簡単なセキュリティ対策をやってみる

はじめまして。 技術の塊なIT業界で、薄皮部分の技術で、まずはなんとかやっているナカオです。   これからちょっとずつ、文字起こさせていただきます。よ …

kali linux 攻撃者の心理
攻撃者の心理 Kali Linux紹介 1

Kali Linux   セキュリティをチェックするツールがたくさん入っています。逆にいえば攻撃にも使えてしまう包丁のようなOS。 セキュリティチェッ …

ZenmapでWindowsからポートスキャン

お世話になります。来週10/24(土)には弊社毎月のイベント第6回ゆるいハッキング大会が開かれますが、「やっぱりいきなりKaliで無線LANハッキングからの攻撃 …

SIP asterisk 不正
アタックNo1☆SIPサーバーへの攻撃の考察

涙が出ちゃう。 お世話になります。代表の加藤です。 日々打ち合わせや制作で、奔走しています。 ところで、法人化してからやはり会社という事で、社内はグループフォン …

第9回ゆるいハッキング大会inTOKYO
第9回 ゆるいハッキング大会 in TOKYO 開催

2016年1月もまた”ゆるいハッキング大会inTOKYO”を開催します。 皆様のご協力を得て、前回も無事終える事ができました。 (前回の様子:第8回 …

hdd フォーマット
HDDのフォーマット Linux shredコマンド

目次1 1. USBに消去したいHDDを繋ぎます。2 2. 操作側のLinuxの容量とデバイス名を確認します。3 3. 容量とデバイス名から消去対象のHDDかど …

ゆるいハッキング大会
第10回 ゆるいハッキング大会 in TOKYO 無事終了

昨日土曜日、都内中央区で開催したゆるいハッキング大会inTOKYOは無事終了。     社内の勉強・趣味として数名で始めたこの会ですが、今回 …

サイバーセキュリティ基本法案
サイバーセキュリティ基本法成立 これからどう変わるのか。まとめてみた

  『すべての産業がインターネット前提になっている時代  セキュリティを再定義する必要がある』   サイバーセキュリティ基本法 2014年1 …

第6回 ゆるいハッキング大会 in TOKYO 無事終了 反省と今後

攻撃の手法側から見て、セキュリティを高めようという社内イベントから発展したセキュリティカンファレンス「第6回 ゆるいハッキング大会inTOKYO」も昨日無事終了 …

トップページ