ImageMagick コマンド実行の脆弱性の詳細な分析
00 はじめに
ImageMagickとは何ですか?
ImageMagick は、一般的な JPEG、GIF、PNG、PDF、PhotoCD 形式を含む 90 種類以上の画像ファイルの読み取り、書き込み、処理に使用できる強力なオープンソース グラフィックス処理ソフトウェアです。写真を切り取ったり、回転させたり、合成したり、さまざまな特殊効果を加えて加工することができます。
その強力な機能、優れたパフォーマンス、および多くの言語の拡張サポートにより、プログラム開発で広く使用されています。多くの Web サイト開発者は、ユーザー アバターの生成や画像編集など、Web 上で画像処理作業を行うために ImageMagick 拡張機能を使用することを好みます。
01 脆弱性の説明
ImageMagick は、PHP、Ruby、NodeJS、Python などの複数の言語をサポートするオープンソースの画像処理ライブラリであり、広く使用されています。 PHP imagick、Ruby rmagick と Paperclip、NodeJS imagemagick などの多くの画像処理プラグインは、すべてこれに依存して実行されます。攻撃者が悪意のあるコードを含むイメージを作成すると、ImageMagick ライブラリは HTTPPS ファイルを不適切に処理し、フィルタリングを実行せず、リモートでリモート コマンドを実行し、場合によってはサーバーを制御する可能性があります。
02 インパクト
攻撃コスト: 低い
危険レベル: 高
影響を受ける範囲: ImageMagick 6.9.3-9 より前のすべてのバージョン
03 脆弱性分析
コマンド実行の脆弱性は、ImageMagickがhttps形式のファイルを処理する過程で発生します。
ImageMagick がこれほど多くのファイル形式をサポートしている理由は、ImageMagick がこれらの画像処理ライブラリを「Delegate」(デリゲート) と名付け、各 Delegate が 1 つの形式ファイルに対応しているためです。次に、システムの system() コマンドを通じて処理するために外部ライブラリを呼び出します。外部ライブラリを呼び出すプロセスはシステムのシステム コマンドを使用して実行され、コードがコマンドを実行します。ImageMagick デリゲートのデフォルト設定ファイル: /etc/ImageMagick/delegates.xml
具体的なコードについては、Github-ImageMagickを参照してください
https 委任行を見つけます:
リーリー
wget はネットワークからファイルをダウンロードするコマンドです。%M はプレースホルダーであり、次のように構成ファイルで具体的に定義する必要があります:
リーリー
たとえば、次のコードを渡します:
リーリー
リーリー
04 悪用
この脆弱性のPOCは次のように外国人によって提供されました:リーリー
Viewbox は SVG の表示領域のサイズを表します。または、ステージ サイズやキャンバス サイズとして想像できます。簡単に理解すると、次のパラメータに従って画面の一部を選択することになります。
fill url() は画像を現在の要素に埋め込みます;
その中で、fill url() を使用して脆弱な https デリゲートを呼び出します。ImageMagick がこのファイルを処理すると、脆弱性がトリガーされます。
添付: ImageMagick は、mvg と呼ばれる画像形式をデフォルトでサポートしています。mvg は svg 形式に似ており、ベクトル画像のコンテンツがテキスト形式で書かれており、ImageMagick の他のデリゲート (脆弱なファイルなど) をロードできるようになります。 https デリゲート) 。また、グラフィック処理プロセス中に、ImageMagick はその内容に応じて自動的に処理します。つまり、ファイルを Web サイトのアップロードに許可されている png、jpg、その他の形式として任意に定義できるため、この脆弱性が悪用されるシナリオが大幅に増加します。
利用プロセス:
次の内容を含むexploit.pngファイルを作成します:
リーリー
05バグ修正 最新バージョンにアップグレード
/etc/ImageMagick/policy.xml を設定して https、mvg デリゲートを無効にするか、対応するデリゲートを設定ファイルで直接削除します
リーリー

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









sudo コマンドを使用すると、ユーザーはスーパーユーザー モードに切り替えることなく、昇格された特権モードでコマンドを実行できます。この記事では、Windows システムで sudo コマンドに似た機能をシミュレートする方法を紹介します。修道コマンドとは何ですか? Sudo (「スーパーユーザー do」の略) は、Linux や MacOS などの Unix ベースのオペレーティング システムのユーザーが、通常は管理者が持つ昇格した権限でコマンドを実行できるようにするコマンド ライン ツールです。 Windows 11/10 での SUDO コマンドの実行 ただし、最新の Windows 11 Insider Preview バージョンのリリースにより、Windows ユーザーはこの機能を体験できるようになりました。この新機能により、ユーザーは次のことが可能になります。

この記事では、Win11 システムでコマンド プロンプト (CommandPrompt) を使用してネットワーク アダプターの物理アドレス (MAC アドレス) を確認する方法を読者に紹介します。 MAC アドレスは、ネットワーク通信において重要な役割を果たすネットワーク インターフェイス カード (NIC) の一意の識別子です。コマンド プロンプトを介して、ユーザーは現在のコンピュータ上のすべてのネットワーク アダプタの MAC アドレス情報を簡単に取得できます。これは、ネットワークのトラブルシューティング、ネットワーク設定の構成、その他のタスクに非常に役立ちます。方法 1: 「コマンド プロンプト」を使用する 1. [Win+X] キーの組み合わせを押すか、タスク バーの [Windows ロゴ] を [右クリック] して、表示されるメニュー項目で [ファイル名を指定して実行] を選択します。ウィンドウを実行し、[cmd]コマンドを入力して、

Win11 システムでは、コマンドを使用して Hyper-V 拡張セッション モードを有効または無効にできます。この記事では、コマンドを使用して操作する方法を紹介し、ユーザーがシステム内の Hyper-V 機能をより適切に管理および制御できるようにします。 Hyper-V は Microsoft が提供する仮想化テクノロジであり、Windows Server、Windows 10 および 11 (Home Edition を除く) に組み込まれており、ユーザーは Windows システムで仮想オペレーティング システムを実行できます。仮想マシンはホスト オペレーティング システムから分離されていますが、設定を通じてサウンド カードやストレージ デバイスなどのホストのリソースを引き続き使用できます。重要な設定の 1 つは、拡張セッション モードを有効にすることです。拡張セッションモードはハイパーです

1. 概要 sar コマンドは、システムアクティビティから収集されたデータを通じてシステム使用状況レポートを表示します。これらのレポートはさまざまなセクションで構成されており、各セクションにはデータの種類とデータが収集された時期が含まれます。 sar コマンドのデフォルト モードでは、CPU にアクセスするさまざまなリソース (ユーザー、システム、I/O スケジューラなど) の CPU 使用率がさまざまな時間増分で表示されます。さらに、特定の期間におけるアイドル状態の CPU の割合も表示されます。各データ ポイントの平均値はレポートの下部にリストされます。 sar レポートはデフォルトで 10 分ごとにデータを収集しますが、さまざまなオプションを使用してこれらのレポートをフィルタリングおよび調整できます。 uptime コマンドと同様に、sar コマンドも CPU 負荷の監視に役立ちます。 sarにより過負荷の発生が把握できる

Linux は、パイプ、シグナル、メッセージ キュー、共有メモリなど、多くの効率的なプロセス間通信メカニズムを提供する強力なオペレーティング システムです。しかし、よりシンプルで、より柔軟で、より効率的なコミュニケーション方法はあるのでしょうか?答えは「はい」です、それはeventfdです。 eventfd は Linux バージョン 2.6 で導入されたシステム コールで、イベント通知の実装、つまりファイル記述子を通じてイベントを配信するために使用できます。 eventsfd にはカーネルが保持する 64 ビット符号なし整数カウンタが含まれており、プロセスはこのファイル記述子を読み書きすることでカウンタ値を読み書きし、プロセス間通信を実現します。イベントFDの利点は何ですか?以下のような特徴があります

Linux でサービスを再起動する正しい方法は何ですか? Linux システムを使用していると、特定のサービスを再起動する必要がある状況がよく発生しますが、サービスの再起動時に実際にサービスが停止しない、または開始しないなどの問題が発生することがあります。したがって、サービスを再起動する正しい方法を習得することが非常に重要です。 Linux では、通常、systemctl コマンドを使用してシステム サービスを管理できます。 systemctl コマンドは systemd システム マネージャーの一部です

ウィジェットは Win11 システムの新機能で、デフォルトでオンになっていますが、ウィジェットをあまり使用しないユーザーや、スペースを占有するためウィジェットを無効にしたいというユーザーがいることは避けられません。以下のエディターで操作方法が説明されているので、実際に試してみることができます。ウィジェットとは何ですか?ウィジェットは、Windows デスクトップ上のお気に入りのアプリやサービスの動的コンテンツを表示する小さなカードです。これらはウィジェット ボードに表示され、興味を反映するようにウィジェットの検索、固定、固定解除、配置、サイズ変更、カスタマイズを行うことができます。ウィジェット ボードは、使用状況に基づいて関連するウィジェットとパーソナライズされたコンテンツを表示するように最適化されています。タスクバーの左隅からウィジェットパネルを開くと、ライブ天気が表示されます

LSOF (ListOpenFiles) は、主に Linux/Unix オペレーティング システムと同様のシステム リソースを監視するために使用されるコマンド ライン ツールです。 LSOF コマンドを使用すると、ユーザーはシステム内のアクティブなファイルと、これらのファイルにアクセスしているプロセスに関する詳細情報を取得できます。 LSOF は、ユーザーが現在ファイル リソースを占有しているプロセスを特定するのに役立ち、それによってシステム リソースの管理が改善され、起こり得る問題のトラブルシューティングが可能になります。 LSOF は強力かつ柔軟であり、システム管理者がファイル リーク、閉じられていないファイル記述子などのファイル関連の問題を迅速に特定するのに役立ちます。 LSOF コマンド経由 LSOF コマンド ライン ツールを使用すると、システム管理者と開発者は次のことを行うことができます。 ポートの競合が発生した場合に、どのプロセスが現在特定のファイルまたはポートを使用しているかを確認する
