disable_functions bypass - dl function
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
重要な注意:
dl
は PHP 拡張をロードするために使用できる PHP 関数です。この関数が無効でない場合、disable_functions
をバイパスして任意のコマンドを実行するために悪用される可能性があります。
ただし、いくつかの厳しい制限があります:
dl
関数は 環境に存在し、無効でない 必要があります
PHP 拡張は サーバーが使用しているのと同じメジャーバージョン(PHP API バージョン)でコンパイルされている必要があります(この情報は phpinfo の出力で確認できます)
PHP 拡張は extension_dir
ディレクティブで 定義されたディレクトリ に 配置されている必要があります(これも phpinfo の出力で確認できます)。攻撃者がサーバーを悪用しようとする場合、このディレクトリに書き込みアクセスを持つことは非常に考えにくいため、この要件はおそらくこの技術を悪用するのを防ぐでしょう。
これらの要件を満たしている場合は、投稿を読み続けてください https://antichat.com/threads/70763/ で disable_functions をバイパスする方法を学びます。以下は要約です:
dl 関数 は、スクリプト実行中に PHP 拡張を動的にロードするために使用されます。PHP 拡張は通常 C/C++ で書かれており、PHP の機能を強化します。攻撃者は dl
関数が無効でないことに気づくと、システムコマンドを実行するためのカスタム PHP 拡張を作成することを決定します。
PHP バージョンの特定:
攻撃者はスクリプト (<?php echo 'PHP Version is '.PHP_VERSION; ?>
) を使用して PHP バージョンを特定します。
PHP ソースの取得:
公式の PHP ウェブサイト またはバージョンが古い場合は アーカイブ から PHP ソースをダウンロードします。
ローカル PHP セットアップ:
特定の PHP バージョンを自分のシステムに抽出してインストールします。
拡張の作成:
ZEND_MODULE_API_NO:
bypass.c
の ZEND_MODULE_API_NO
は現在の Zend Extension Build と一致する必要があり、次のコマンドで取得できます:
PHP_FUNCTION の修正:
最近の PHP バージョン(5、7、8)では、PHP_FUNCTION(bypass_exec)
の調整が必要な場合があります。提供されたコードスニペットがこの修正の詳細を示しています。
bypass.c:
カスタム拡張のコア機能を実装します。
php_bypass.h:
拡張のプロパティを定義するヘッダーファイルです。
config.m4:
phpize
によってカスタム拡張のビルド環境を構成するために使用されます。
コンパイルコマンド:
phpize
、./configure
、および make
を使用して拡張をコンパイルします。
結果として得られる bypass.so
はモジュールのサブディレクトリに配置されます。
クリーンアップ:
コンパイル後に make clean
と phpize --clean
を実行します。
バージョンの互換性:
攻撃者と被害者のシステム間で PHP API バージョンが一致していることを確認します。
拡張のロード:
dl
関数を利用し、相対パスやスクリプトを使用してプロセスを自動化することで制限を回避します。
スクリプトの実行:
攻撃者は bypass.so
と PHP スクリプトを被害者のサーバーにアップロードします。
スクリプトは dl_local
関数を使用して bypass.so
を動的にロードし、cmd
クエリパラメータを介して渡されたコマンドで bypass_exec
を呼び出します。
攻撃者は次の URL にアクセスすることでコマンドを実行できます: http://www.example.com/script.php?cmd=<command>
この詳細な手順は、dl
関数を悪用してシステムコマンドを実行するための PHP 拡張を作成し、展開するプロセスを概説しています。この関数は理想的には無効にされるべきであり、こうしたセキュリティ侵害を防ぐためです。
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)