ファイルの包含と任意のコードの実行とは? - マルケア
公開: 2023-04-13ファイルの組み込みと任意のコードの実行:今月初め、 WordPress で構築された航空券のWeb サイトがハッキングされ、数十万人の訪問者の個人データが公開されました。 ハッカーがハッキングする理由に関する以前の投稿では、ハッカーがデータを盗んだり、スパムメールを送信したり、自社製品をランク付けするためにブラックハット SEO 手法を使用している可能性もあります(推奨される読み取り – 医薬品ハック)など、ハッカーがハッキングするすべての理由について説明しました。
ハッカーが Web サイトをハッキングする方法を知ることは、ハッカーを防ぐための鍵となります。そのため、以前の記事で WordPress Web サイトで行われる最も一般的なハッキング攻撃を挙げました。
一般的なハック攻撃について話すとき、ブルート フォース攻撃について考える可能性が非常に高くなります。 しかし、WordPress Web サイトで行われる最も一般的なハッキング攻撃の 1 つは、ファイル インクルードと任意のコードの実行であることをご存知でしたか。 この投稿では、これらの攻撃を詳しく理解するために、これらの攻撃についてもう少し詳しく説明します。
これらの攻撃がどのように機能するかを理解するために、最初に知っておくべきことは、PHP ファイルが関係していることです。なぜだろう? その理由は、ファイル インクルージョン攻撃と任意コード実行攻撃の両方に、PHP ファイルの使用が関係しているからです。
しかし、PHPファイルとは何ですか? キッチンキャビネットを考えてみてください。 キャビネットの中には、砂糖、塩、香辛料、調理器具などのアイテムがたくさんあります。これらのアイテムにはそれぞれ、キッチンで使用する目的があります。PHP ファイルはキャビネットであり、ファイル内のコードは、ハッカーが必要とする特定の機能の実行を可能にするアイテムです。これが、ハッカーが JPEG や PDF ファイルなどの他のファイルよりも PHP ファイルをアップロードすることを好む理由です。 JPEG および PDF ファイルは実行可能ではありません。つまり、ハッカーはこれらのファイルを使用して機能を実行することはできません。 それらを読み取る (つまり、表示する) ことしかできません。 ハッキングされたサイトに変更を加えるために使用することはできません。
Web サイト サーバーに PHP ファイルをアップロードしたハッカーは、それを使用して Web サイトであらゆることを行うことができます。 これが、ファイル インクルージョン攻撃や任意コード実行攻撃の実行に PHP ファイルが使用される理由です。
ファイル インクルージョン攻撃とは何ですか?
このような複雑な Web サイト攻撃を理解する最善の方法は、実際のシナリオを例証することです。 あなたの機関の Web サイトを運営していて、そのサイトの名前が college.com であるとします。 最近の大学のイベントで撮影した写真を投稿できるように、少数の学生にサイトへのアクセスを許可します。 誰かがあなたのアクセス権を悪用し、悪意のある PHP ファイル (hack.php という名前) を Web サイトにアップロードします。 目標は、大学の Web サイトを制御することです。 学生が悪意のある PHP ファイルをアップロードすると、デフォルトで Upload フォルダに保存されます。WordPress の基本構造を知っている人なら誰でも、アップロードされたファイルがどこに行くかを知っています。
ファイルは、ハッカーがリモートでファイルと対話できるようにするドアのように機能します。 ハッカーはまだサイトを制御できないことに注意してください。彼らにはコミュニケーションの窓口があるだけです。 理解しやすいように、A という人が、自分が許可されていない国に行きたいと考えていると想像してください。 そこで彼はエージェント、人物 B を送ります。人物 A はハッカーで、国は大学の Web サイトを表し、人物 B は hack.php ファイルを表します。
大学の Web サイトにアップロードされた PHP ファイル --> ファイルは Web サイト サーバーに保存されます。
人物 B は、いくつかのことだけを訓練されており、できることは限られています。 そのため、A さんは次に何をすべきかを彼に指示する必要があります。 同様に、PHP ファイルは通信ウィンドウを作成し、ハッカーからのコマンドを待ちます。
より多くのファイルを Web サイトにアップロードできるように hack.php が作成されているとします。 ハッカーは、Web サイト サーバーに既に存在する hack.php を使用してアップロードするファイル (control.php という名前) を作成します。 新しいファイル control.php により、ハッカーは Web サイトに完全にアクセスできるようになります。 彼は、hack.php ファイルによって提供されるウィンドウを使用して、control.php ファイルをサイトにアップロードします。Web サイト サーバーに既に存在するファイル (hack.php) を使用して control.php ファイルをアップロードするこのプロセスは、ローカル ファイル インクルージョンと呼ばれます。
ローカル ファイル実行の好例の 1 つは、Easy Forms for MailChimp WordPress プラグイン (v 6.0.5.5)で観察された脆弱性です。 MailChimp プラグインを使用すると、Web サイトの所有者は、WordPress サイトにさまざまな種類のフォームを追加できます。 脆弱性により、ハッカーは MailChimp フォームを使用して Web サイト サーバーに PHP ファイルをアップロードできました。ファイルが Web サイト サーバーに保存されると、ハッカーはファイルと通信してコードを実行し、サーバーを制御したり、さまざまな方法でサイトに損害を与えたりすることができます。
シナリオは次のとおりです。大学の Web サイトにはファイアウォールがインストールされているため、ハッカーは control.php をアップロードできません。 別の個別のファイルをアップロードすることはできませんが、ファイルを「含める」ことはできます。 これは、大学の Web サイト サーバーに既に存在する hack.php ファイル内にファイルを挿入できることを意味します。 ハッカーが control.php ファイルをアップロードできた場合、Web サイト サーバーはファイルを読み取り、内部のコードを実行して、ハッカーがやりたいことを何でもできるようにします。 しかし、彼はファイルをアップロードできないため、サーバーに control.php ファイルを読み取らせる別の方法を見つける必要があります。 ハッカーによって作成されたパスはオンラインで入手でき、大学の Web サイトのサーバーはそれを読み取ることができるはずです。 したがって、ハッカーはパスを作成し、オンラインで利用できるようにして、大学の Web サイト サーバーがそれを読み取ることができるようにします。 次に、サーバーはパスから取得したコードの実行を開始します。このコードは、ハッカーがサイトを完全に制御できるように記述されているため、ハッキングによって大学の Web サイトが制御されるようになります。 サーバーにリモート ファイルを読み取らせるこのプロセスは、リモート ファイル インクルージョンと呼ばれます。
TimThumb の脆弱性のケースは、リモート ファイル インクルージョンの一般的な例です。 TimThumb は、WordPress サイトの画像を簡単に編集できる WordPress プラグインでした。 これにより、imgur.com や flickr.com などの画像共有 Web サイトから入手した画像を誰でも使用できるようになりました。 TimThumb は、imgur を有効なサイト (またはホワイトリストに登録済み) として認識します。 この基準を利用するハッカーは、http://www.imgur.com.badsite.com のような有効なサイトに言及している URL を含むファイルを作成します。上記のような URL を持つ悪意のあるファイルをアップロードすると、プラグインはそのファイルが有効な Web サイトからのものであると信じ込ませます。また、悪意のあるファイルを Web サイトのサーバーにアップロードすることもできます。 プラグインの脆弱性を利用して Web サイト サーバーの外部から悪意のあるファイルを含めるこのプロセス全体が、リモート ファイル インクルージョンです。 悪意のある PHP ファイルが Web サイト サーバーに保存されると、ハッカーはそのファイルと通信して目的のアクションを実行できます。
任意コード実行攻撃とは?
リモートおよびローカル ファイル インクルージョンとは何かがわかったので、次に進み、任意コード実行とは何かを理解してみましょう。 ファイルの組み込みと任意のコードの組み込みは相互に関連しています。 ファイル インクルージョンのいずれの場合でも、ハッカーの目的は Web サイトで任意のコードを実行することです。 ハッカーが大学の Web サイトに hack.php をアップロードし、hack.php を使用して control.php をアップロードしたローカル ファイル インクルージョンの例に戻りましょう。任意のコード実行というフレーズは、ハッキングされた Web サイトで任意のコマンドを実行するハッカーの能力を表しています。PHP ファイル (hack.php と control.php) が Web サイト サーバーにアップロードされると、ハッカーは任意のコードを実行できます。 彼がアップロードしたファイルから任意のコードを実行するこのプロセスは、任意コード実行と呼ばれます。
ハックは複雑です。 この投稿では、簡単に説明するように努めましたが、意味をなさない部分がある場合は、読者にお知らせください。 次の投稿では、クロスサイト スクリプティング (XSS) と呼ばれる、WordPress サイトに対する別の一般的なハッキング攻撃について説明します。 見てください。