2020年7月6日 新型肺炎ウィルスの影響を受けて、お問い合わせ対応時間が10時~18時となっております。ご迷惑をおかけしますが宜しくお願い申し上げます。
WordPress 脆弱性

WordPress 4.7, 4.7.1 脆弱性の検証

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でしたのなら即刻バージョンアップさせることを推奨します。

WordPress 脆弱性
最新情報をチェックしよう!

小松の最新記事8件

>システム構築・保守に特化した会社です。

システム構築・保守に特化した会社です。

システムの構築・保守運用「システムガーディアン」 社内システム担当が欲しいが、専属で雇うほどの仕事量はない。 必要な時に必要なだけ頼りたいというお悩みを持つ企業様へ専門知識を持って対応を行っております。 サーバから各種システムまで自社・他社で構築されたシステムに対してサポートを行っております。

CTR IMG