PHP Utility Belt は、PHP プログラム開発者向けのツールのセットで、正規表現をテストし、preg_match および preg_match_all 関数との一致を観察したり、preg_replate 関数の結果を観察したりするために使用できます。 2 つの単語、2 つの数字、大文字、記号を含むランダムなパスワードを取得し、mktime および strtotime タイムスタンプの日付形式または数値タイムスタンプをテストします。
任意の PHP コードを実行できるため、テスト環境でのみ使用でき、本番環境では実行しないでください。
この脆弱性の脆弱性番号は EDB-ID: 39554 です
ソースコードのダウンロードアドレスは: https://github.com/mboynes/php-utility-belt
ターゲットマシンの IP アドレスが 192.168.248.129、攻撃マシンの IP アドレスが 192.168.248.128 である実験環境をセットアップします
下の図は、実行後の PHP Utility Belt の動作を示しています。それは建てられています。
Metasploit はこの脆弱性に対するエクスプロイト コードを提供しています。パスは
exploit/multi/http/php_utility_belt_rce
攻撃マシン上でこの攻撃スクリプトを実行します
次にペイロードを設定します
次に対応するオプションを設定します
最後にエクスプロイトコマンドを実行して攻撃を開始します
メータープリッター シェルが取得され、攻撃が成功したことがわかります。
以下のように、プロセス全体でデータ パケットをキャプチャします。
POST によって渡されるパラメーターは code という名前であり、すべての攻撃コードはこの変数内にあります。脆弱性が存在するファイル ajax.php では、問題は 10 行目から 15 行目までのコードセグメントにあります
プログラムは最初に code パラメーターが設定されている場合は、eval関数に直接入れて実行します。 eval関数の機能は、入力パラメータの内容をPHPコードとして実行することです。つまり、攻撃者がコード内で指定した内容は、その値が PHP コードの構文仕様に準拠している限り、無条件に実行されます。これは典型的な eval インジェクションです。
上記のコードは、テスト環境ではプログラマの作業を容易にしますが、実稼働環境では非常に危険です。
* 投稿者: Navyofficer、FreeBuf Hackers and Geeks (FreeBuf.COM) から転載する場合はその旨を明記してください