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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2024-32830-poc — CVE-2024-32830を利用してファイルをダウンロードするPoCコード | Kitploit
ツール/GitHubGitHub/ptrstr/cve-2024-32830-poc
ペイロード生成脆弱性分析コード分析エクスプロイトウェブアプリケーション悪用
GitHubptrstr/cve-2024-32830-poc

CVE-2024-32830-poc

CVE-2024-32830を利用してファイルをダウンロードするPoCコード

リポジトリを見る
1年前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2024-32830-poc

CVE-2024-32830 を使用してファイルをダウンロードする PoC コード

getimagesize バイパス

getimagesize の制限をバイパスするには、PHP 用の単純な image/vnd.wap.wbmp イメージを作成できます。

ファイルタイプのチェックは非常に単純です:

root@kitploit:~
// https://github.com/php/php-src/blob/0029d2b08bbd3cb3aa293d9c8d55bf31faa9e203/ext/standard/image.c#L917
static int php_get_wbmp(php_stream *stream, struct gfxinfo **result, int check)
{
	int i, width = 0, height = 0;

	if (php_stream_rewind(stream)) {
		return 0;
	}

	/* get type */
	if (php_stream_getc(stream) != 0) {
		return 0;
	}

	/* skip header */
	do {
		i = php_stream_getc(stream);
		if (i < 0) {
			return 0;
		}
	} while (i & 0x80);

	/* get width */
	do {
		i = php_stream_getc(stream);
		if (i < 0) {
			return 0;
		}
		width = (width << 7) | (i & 0x7f);
		/* maximum valid width for wbmp (although 127 may be a more accurate one) */
		if (width > 2048) {
			return 0;
		}
	} while (i & 0x80);

	/* get height */
	do {
		i = php_stream_getc(stream);
		if (i < 0) {
			return 0;
		}
		height = (height << 7) | (i & 0x7f);
		/* maximum valid height for wbmp (although 127 may be a more accurate one) */
		if (height > 2048) {
			return 0;
		}
	} while (i & 0x80);

	if (!height || !width) {
		return 0;
	}

	if (!check) {
		(*result)->width = width;
		(*result)->height = height;
	}

	return IMAGE_FILETYPE_WBMP;
}

有効なイメージを構築する最も簡単な方法は、2 つの NUL バイト、その後に幅と高さ用の 2 つの < 0x80 バイトを続けることです。

php://filter を使用すると、任意のファイルに対してこれを行うことが可能です。

最初のレイヤーでは、すべてのデータが ASCII であることを保証するために base64 エンコーディングを適用し、< 0x80 の制約を満たす必要があります。

2 番目のフィルターでは、最初の 2 つの NUL バイトを追加する必要があります。これは、UTF-16BE から UTF-32BE への変換を強制することで可能です。これにより、iconv は 2 バイトの各チャンクを有効な UTF-16BE 文字として解釈し、その前に 2 つの NUL バイトを付加して UTF-32BE にします。使用する実際のフィルターは次のとおりです:convert.iconv.utf-16be.utf-32be。

最終的なペイロードは php://filter/convert.base64-encode/convert.iconv.utf-16be.utf-32be/resource=<file here> です。

ツールをダウンロード