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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2019-19634 — これは、class.upload.php <= 2.0.4 において、フィルターバイパスを利用して任意のファイルアップロードとリモートコード実行を可能にするエクスプロイトです。 | Kitploit
ツール/GitHubGitHub/jra89/cve-2019-19634
ペイロード生成脆弱性分析コード分析エクスプロイトウェブアプリケーション悪用ペネトレーションテスト
GitHubjra89/cve-2019-19634

CVE-2019-19634

これは、class.upload.php <= 2.0.4 において、フィルターバイパスを利用して任意のファイルアップロードとリモートコード実行を可能にするエクスプロイトです。

リポジトリを見る
3686年前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有

CVE-2019-19634 - class.upload.php <= 2.0.4 任意ファイルアップロード

  • 作者 - Jinny Ramsmark
  • 影響を受けるベンダー - Verot.net
  • 影響を受ける製品 - class.upload.php <= 2.0.4
  • 新規インストールしたUbuntu 14.04(PHP5およびApache使用)でテスト済み
  • 特にDebian/Ubuntuは、利用可能なPHPハンドラーにpht拡張子などを追加するため、脆弱性があることが判明しています。この場合、class.upload.phpはpht拡張子をブラックリストに登録していません。
  • このCVEはCVE-2019-19576に直接関連しています。

説明

これはフィルター回避エクスプロイトであり、任意のファイルアップロードとリモートコード実行を引き起こします。 class.upload.phpスクリプトは「危険なファイルとコンテンツ」をフィルタリングし、それらをtxtファイル拡張子にリネームします。 また、アップロードされた画像に対してさまざまな変換を行うため、ファイル拡張子フィルターを回避できたとしても、通常は注入されたペイロードを破壊します。

ファイル拡張子フィルターはブラックリスト方式のため、新しい拡張子が導入されるたびに(この場合はpht)、または見落とされた拡張子がある場合、PHPファイルをアップロードできます。 ただし、コンテンツは引き続き有効な画像である必要があり、imagecreatefromjpegなどの関数を通過します。 この目的のために、class.upload.phpで行われる処理によってペイロードが破壊されない画像が見つかるまで、さまざまな画像を総当たりで探索するinject.phpスクリプトを作成しました。 これにより、実質的に任意のファイルアップロードが可能になり、アップロードされたページでは有効な画像として表示されるため、非常にステルス性の高いコード実行が可能になります。

inject.phpスクリプトは、近い将来この種の攻撃のためのより一般的なツールとして書き直される予定ですが、現時点ではこの種のCVEリリースに個別のスクリプトとして含まれるだけです。

タイムライン(デフォルト90日間の期限)

  • 2019-12-07 - 開発者とJoomlaWorksのK2に報告(影響を受けています)
  • 2019-12-07 - 開発者が対応し、パッチをリリース
  • 2019-12-08 - 開発者が対応し、情報公開に同意

このPoCに含まれるファイル

  • composer.json
  • upload.php
  • inject.php

使用方法

upload.phpスクリプトは、verot.netのGitHubにあるサンプルコードです。 この脆弱性を、彼らのサンプルコードを使って実証するのが最善だと考えました。

  • ターミナルで「php inject.php」を実行すると、ファイル内にシンプルなペイロードを含むサンプル画像が生成されます。
  • スクリプトが完了すると、「image.jpg.pht」というファイルが生成されます。
  • upload.phpファイルにアクセスし、image.jpg.phtをアップロードすると、処理が実行され、シェルが取得できます。

例

root@kitploit:~
user@ayu:/var/www/html# php inject.php 
-=Imagejpeg injector 1.8=-
[+] Fetching image (100 X 100) from http://lorempixel.com/100/100/
[+] Jumping to end byte
[+] Searching for valid injection point
[!] Temp solution, if you get a 'recoverable parse error' here, it means it probably failed
[+] It seems like it worked!
[+] Result file: image.jpg.pht
root@kitploit:~
user@ayu:/var/www/html# curl -v -o - http://localhost/images/image_resized.phar?c=uname%20-a | grep -aPo "(Linux.*GNU)"
Linux ayu 5.0.0-36-generic #39-Ubuntu SMP Tue Nov 12 09:46:06 UTC 2019 x86_64 x86_64 x86_64 GNU

提案される解決策

  • ファイル拡張子をブラックリスト化しない。
  • 代わりにデフォルトで許可された拡張子のホワイトリストを使用する。
  • または、アップロードされたファイルに拡張子を一切付けず、元の名前を別の場所に保存する。

リファレンス

  • https://github.com/verot/class.upload.php/blob/2.0.5/src/class.upload.php#L3068
ツールをダウンロード