### 关键信息 #### 0x01 受影响版本 - **厂商**: PrestaShop - **受影响版本**: PrestaShop 8.2.0 版本,PHP 7.x 模块 `simpleimportproducts` #### 0x02 漏洞描述 - **漏洞类型**: PHP 反序列化漏洞 - **漏洞位置**: `AdminProductsImportController.php` 文件中的 `_getHeaders` 函数 - **漏洞详情**: 攻击者可以通过创建恶意的 Phar 文件并上传到服务器来触发反序列化漏洞。这可能导致任意代码执行、敏感信息泄露、远程文件包含等。 #### 0x03 漏洞利用 - **关键代码**: ```php public function _getHeaders() { $file = Tools::getValue('csv_file'); if ($file) { $mime = Tools::strtolower(Tools::strtolower($file)); if (strpos($mime, 'feed_source') !== false) { $this->_getHeader(); } } } private function _getHeader() { try { $filename = $this->context->link->getMediaLink(_PS_MODULE_DIR_ . 'simpleimportproducts/csv/' . Tools::getValue('feed_source')); $handle = fopen($filename, 'r'); $headers = fgetcsv($handle); fclose($handle); return $headers; } catch (Exception $e) { return []; } } ``` - **生成恶意 Phar 文件的示例代码**: ```php class MaliciousHandler implements SplFileInfo, RecursiveIterator { // ... } class ClassAliasHandler implements ClassAlias { // ... } namespace Handler\Manager; class ClassAliasHandler implements ClassAlias { // ... } $phar = new Phar("malicious.phar"); $phar->startBuffering(); $phar->addFromString("payload.php", ""); $phar->setStub(""); $phar->buildFromDirectory(__DIR__ . "/payloads"); $phar->stopBuffering(); ```