今天04.08.2015,有一个新的安全补丁发布,我和一些同事正在检查该补丁,很高兴就更改内容进行讨论,有人知道什么可能会影响和未打补丁的攻击吗?可能发生的最坏情况是什么?
magento-1921/app/code/core/Mage/Cms/Block/Block.php
以及magento-1921/app/code/core/Mage/Cms/Block/Widget/Block.php
今天04.08.2015,有一个新的安全补丁发布,我和一些同事正在检查该补丁,很高兴就更改内容进行讨论,有人知道什么可能会影响和未打补丁的攻击吗?可能发生的最坏情况是什么?
magento-1921/app/code/core/Mage/Cms/Block/Block.php
以及magento-1921/app/code/core/Mage/Cms/Block/Widget/Block.php
Answers:
实际的安全补丁(SUPEE-6482)仅影响以下两个文件,并且是API补丁。
app/code/core/Mage/Api/Model/Server/Adapter/Soap.php
app/code/core/Mage/Catalog/Model/Product/Api/V2.php
完整的1.9.2.1安装完全是另一回事。我将在1.9.2.0和1.9.2.1之间比较源代码,以找出另外两个被修补的项目。
发行说明适用于完整安装程序,您必须检查该修补程序以查看其是否实际上包括发行说明中记录的所有项目。
运行未打补丁的服务器的含义:
注意:在完整安装档案文件中修补但未使用修补程序修补的文件,是吗?
diff -r magento-1920/app/code/core/Mage/Core/Controller/Request/Http.php magento-1921/app/code/core/Mage/Core/Controller/Request/Http.php
300a301
> $host = $_SERVER['HTTP_HOST'];
302,303c303,304
< $host = explode(':', $_SERVER['HTTP_HOST']);
< return $host[0];
---
> $hostParts = explode(':', $_SERVER['HTTP_HOST']);
> $host = $hostParts[0];
305c306,313
< return $_SERVER['HTTP_HOST'];
---
>
> if (strpos($host, ',') !== false || strpos($host, ';') !== false) {
> $response = new Zend_Controller_Response_Http();
> $response->setHttpResponseCode(400)->sendHeaders();
> exit();
> }
>
> return $host;
diff -r magento-1920/app/design/frontend/base/default/template/page/js/cookie.phtml magento-1921/app/design/frontend/base/default/template/page/js/cookie.phtml
37,38c37,38
< Mage.Cookies.path = '<?php echo $this->getPath()?>';
< Mage.Cookies.domain = '<?php echo $this->getDomain()?>';
---
> Mage.Cookies.path = '<?php echo Mage::helper('core')->jsQuoteEscape($this->getPath()) ?>';
> Mage.Cookies.domain = '<?php echo Mage::helper('core')->jsQuoteEscape($this->getDomain()) ?>';
我详细了解了这些变化以及预期的副作用。
在EE 1.13.1.0的版本中,更改了以下文件:
2015-08-05 07:14:25 UTC | SUPEE-6482_EE_1.13.1.0 | EE_1.13.1.0 | v2 | 7e38036f94f250514fcc11d066a43c9bdb6a3723 | Tue Jul 28 14:29:35 2015 +0300 | v1.13.1.0..HEAD
patching file app/code/core/Enterprise/PageCache/Model/Processor.php
patching file app/code/core/Mage/Api/Model/Server/Adapter/Soap.php
patching file app/code/core/Mage/Catalog/Model/Product/Api/V2.php
patching file app/code/core/Mage/Core/Controller/Request/Http.php
Hunk #1 succeeded at 294 (offset 7 lines).
patching file app/design/frontend/base/default/template/page/js/cookie.phtml
patching file app/design/frontend/enterprise/default/template/giftregistry/search/form.phtml
Adapter/Soap.php
,将urlencoding添加到身份验证数据中。这应该没有负面影响。它确保结果wsdlUrl
是有效的。如果不进行此更改,则可能会影响网址Product/Api/V2.php
:这是一些检查传递的数据是否是对象。在正常情况下不应发生这种情况。Request/Http.php
和PageCache/Model/Processor.php
获取HTTP主机时添加了检查。这似乎涵盖了提到的标头注入。该检查仅在HTTP主机中存在;
或,
HTTP主机时适用,因此这在现实生活的系统中应该不重要/没有负面影响。cookie.phtml
转义中添加。因此,如果您覆盖该文件,则必须将其转发到您的主题giftregistry/search/form.phtml
综上所述,我想说应用补丁应该不会有任何负面影响。切记将更改转发到.phtml
文件。
奇怪的是EE补丁包含对以下文件的修改:
app/code/core/Mage/Core/Controller/Request/Http.php
app/design/frontend/base/default/template/page/js/cookie.phtml
如果没有CE,则为等效版本。
我认为该SUPEE-6482
CE版本缺少某些内容,并且V2可能会很快发布。
对于Magento社区版:
对于Magento企业版
礼品注册表搜索中的XSS
在课堂上做改变
Mage_Api_Model_Server_Adapter_Soap
Mage_Catalog_Model_Product_Api_V2
Mage_Api_Model_Server_Adapter_Soap的更改
: $urlModel->getUrl('*/*/*');
if ( $withAuth ) {
- $phpAuthUser = $this->getController()->getRequest()->getServer('PHP_AUTH_USER', false);
- $phpAuthPw = $this->getController()->getRequest()->getServer('PHP_AUTH_PW', false);
- $scheme = $this->getController()->getRequest()->getScheme();
+ $phpAuthUser = rawurlencode($this->getController()->getRequest()->getServer('PHP_AUTH_USER', false));
+ $phpAuthPw = rawurlencode($this->getController()->getRequest()->getServer('PHP_AUTH_PW', false));
+ $scheme = rawurlencode($this->getController()->getRequest()->getScheme());
if ($phpAuthUser && $phpAuthPw) {
$wsdlUrl = sprintf("%s://%s:%s@%s", $scheme, $phpAuthUser, $phpAuthPw,
在Mage_Catalog_Model_Product_Api_V2处更改
public function create($type, $set, $sku, $productData, $store = null)
{
- if (!$type || !$set || !$sku) {
+ if (!$type || !$set || !$sku || !is_object($productData)) {
$this->_fault('data_invalid');
}
@@ -243,6 +243,9 @@ class Mage_Catalog_Model_Product_Api_V2 extends Mage_Catalog_Model_Product_Api
*/
protected function _prepareDataForSave ($product, $productData)
{
+ if (!is_object($productData)) {
+ $this->_fault('data_invalid');
+ }
if (property_exists($productData, 'website_ids') && is_array($productData->website_ids)) {
$product->setWebsiteIds($productData->website_ids);
}
详情请访问:http://www.amitbera.com/magento-security-patch-supee-6482/
app/code/core/Mage/Core/Controller/Request/Http.php
且app/design/frontend/base/default/template/page/js/cookie.phtml
在丢失的文件中。也许我们应该将顶部的问题更改为:Magento安全补丁SUPEE-6482,未修补的内容是什么?
请阅读此版本的Magento文档,答案在此处:http : //merch.docs.magento.com/ce/user_guide/Magento_Community_Edition_User_Guide.html#magento/release-notes-ce-1.9.2.1.html