Ankündigung

Einklappen
Keine Ankündigung bisher.

Zen-Cart Sicherheitspatch September 2008

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Zen-Cart Sicherheitspatch September 2008

    Es ist eine Sicherheitslücke in Zen-Cart bkannt geworden, durch die Angreifer Code in die Datenbank einschleusen können.
    Betroffen ist die Datei includes/classes/shopping_cart.php
    Es wird empfohlen, umgehend die hier beschriebenen Änderungen in der shopping_cart.php vorzunehmen:
    Security Alert: SQL Injection Risk A vulnerability in Zen Cart v1.3.0-to-1.3.8 has been identified (thanks to Gulftech Security Research) which could potentially allow rogue behavior if the site has magic_quotes_gpc turned off in their server/site's PHP settings. You should immediately apply the following fixes to your site, as shown below, according to the version of Zen Cart you're using: NOTE: THE FIXES SHOWN BELOW ARE SUPERCEDED BY THE FOLLOWING ANNOUNCEMENT:

    #2
    Dankeschön

    Kommentar


      #3
      merci!

      Kommentar


        #4
        werd ich gleich machen

        danke

        bye

        Kommentar


          #5
          BTW: Ist es erforderlich, die Anleitung unter
          http://www.zen-cart.com/forum/showthread.php?p=604473 ins Deutsche zu transferieren, damit auch die technisch versierten, nicht-englischsprachigen Kollegen etwas davon haben?

          Kommentar


            #6
            Zitat von kermie
            BTW: Ist es erforderlich, die Anleitung unter
            http://www.zen-cart.com/forum/showthread.php?p=604473 ins Deutsche zu transferieren, damit auch die technisch versierten, nicht-englischsprachigen Kollegen etwas davon haben?
            klar wär das fein, nur zu

            Kommentar


              #7
              Hinweis: Zur Fehlervermeidung und weil ich im Code keine farblichen Hervorhebungen machen kann, holt euch den Code am besten von der englischen Seite!

              Sicherheitswarnung: Risiko eines SQL-Injection-Angriffs

              Im ZenCart wurde eine Sicherheitslücke (Dank an Gulftech Security Research http://www.gulftech.org/?node=webappsec) entdeckt, die Angriffe ermöglicht, wenn in den PHP Settings des Servers der Wert magic_quotes_gpc auf OFF gesetzt ist.

              Zum Prüfen öffnet bitte im Admin-Bereich Eures Shops 'Tools' -> 'Server Info' und sucht nach dem String 'magic_quotes_gpc'.

              Ihr solltet schleunigst die hier angegebenen Fixe in euren Shop einspielen. Bitte achtet auf die von euch verwendete ZenCart-Version:

              Alle fixe betreffen die Datei /includes/classes/shopping_cart.php

              1. Der folgende Fix in zwei Schritten wird für alle Versionen 1.2.x bis 1.3.8a benötigt:

              a) Ca. auf Zeile 300, fügt einfach die u.a. Zeilen hinzu:
              Code:
                            if (is_array($value) ) {
                              reset($value);
                              while (list($opt, $val) = each($value)) {
                               $val = (int)$val;
                                $products_options_sort_order= zen_get_attributes_options_sort_order(zen_get_prid($products_id), $option, $opt);
                                $sql = "insert into " . TABLE_CUSTOMERS_BASKET_ATTRIBUTES . "
                                                      (customers_id, products_id, products_options_id, products_options_value_id, products_options_sort_order)
                                                      values ('" . (int)$_SESSION['customer_id'] . "', '" . zen_db_input($products_id) . "', '" .
                                                      (int)$option.'_chk'. $val . "', '" . $val . "',  '" . $products_options_sort_order . "')";
              
                                                      $db->Execute($sql);
                              }
                            } else {
                              if ($attr_value) {
                                $attr_value = zen_db_input($attr_value);
                              }
                              $value = (int)$value;
                              $products_options_sort_order= zen_get_attributes_options_sort_order(zen_get_prid($products_id), $option, $value);
                              $sql = "insert into " . TABLE_CUSTOMERS_BASKET_ATTRIBUTES . "
                                                    (customers_id, products_id, products_options_id, products_options_value_id, products_options_value_text, products_options_sort_order)
                                                    values ('" . (int)$_SESSION['customer_id'] . "', '" . zen_db_input($products_id) . "', '" .
                                                    (int)$option . "', '" . $value . "', '" . $attr_value . "', '" . $products_options_sort_order . "')";
              
                                                    $db->Execute($sql);
                            }
              b) Ca. auf Zeile 400 seht ihr einen ganz ähnlichen (aber anderen) Code-Block. Hier bitte ebenfalls die beiden Zeilen hinzufügen:
              Code:
                if (is_array($value) ) {
                          reset($value);
                          while (list($opt, $val) = each($value)) {
                            $val = (int)$val;
                            $products_options_sort_order= zen_get_attributes_options_sort_order(zen_get_prid($products_id), $option, $opt);
                            $sql = "update " . TABLE_CUSTOMERS_BASKET_ATTRIBUTES . "
                                      set products_options_value_id = '" . $val . "'
                                      where customers_id = '" . (int)$_SESSION['customer_id'] . "'
                                      and products_id = '" . zen_db_input($products_id) . "'
                                      and products_options_id = '" . (int)$option.'_chk'.$val . "'";
              
                            $db->Execute($sql);
                          }
                        } else {
                          if (isset($_SESSION['customer_id'])) {
                            $value = (int)$value;
                            $sql = "update " . TABLE_CUSTOMERS_BASKET_ATTRIBUTES . "
                                      set products_options_value_id = '" . $value . "', products_options_value_text = '" . $attr_value . "'
                                      where customers_id = '" . (int)$_SESSION['customer_id'] . "'
                                      and products_id = '" . zen_db_input($products_id) . "'
                                      and products_options_id = '" . (int)$option . "'";
              
                            $db->Execute($sql);
                          }
                        }
              2. Der folgende Fix wird nur für die Versionen 1.3.0 bis 1.3.8a benötigt.

              In Abhängigkeit von der Version findet ihr dieser Bereich ca. von Zeile 1650 bis 1720: Ändert einfach die $prodid= - Zeile in das hier angegebene:
              Code:
                function actionMultipleAddProduct($goto, $parameters) {
                  global $messageStack;
                  if (is_array($_POST['products_id']) && sizeof($_POST['products_id']) > 0) {
                    while ( list( $key, $val ) = each($_POST['products_id']) ) {
                      if ($val > 0) {
                        $adjust_max = false;
                        $prodId = ereg_replace('[^0-9a-f:]', '', $key);
                        $qty = $val;
                        $add_max = zen_get_products_quantity_order_max($prodId);
              ...
              Bitte prüft nochmal vorm Speichern der Datei, ob hinter dem schliessenden ?> kein weiteres Zeichen stehen, das könnte zu neuen Problemen führen.

              Diese Änderung wird für künftige ZenCart-Versionen übernommen.

              Kommentar


                #8
                super Sache, Danke für die Übersetzung!

                Kommentar


                  #9
                  WICHTIGES UPDATE ZUM SICHERHEITSPATCH

                  Der hier gepostete Patch wurde mittlerweile modifiziert, weil die beschriebenen Änderungen in der shopping_cart.php dazu führen können, dass Artikel nicht mehr korrekt in den Warenkorb gelegt werden können.

                  Der neue Patch ist attached und sollte unbedingt eingespielt werden.
                  Datei entpacken und in folgendes Verzeichnis spielen:
                  includes/extra_configures

                  Wichtig:
                  Wer bereits seine includes/classes/shopping_cart.php wie weiter oben beschreiben geändert hat, muss zusätzlich in der includes/classes/shopping_cart.php folgende Änderung durchführen:
                  Folgende Zeile suchen:
                  Code:
                  $prodId = ereg_replace('[^0-9a-f:]', '', $key);
                  Und ersetzen mit:
                  Code:
                  $prodId = ereg_replace('[^0-9a-f:.]', '', $key);
                  Wer die Datei vorher nicht geändert hatte, muss nichts tun, nur den attachten Patch einspielen.

                  Weitere Informatione dazu hier:
                  UPDATE TO Security Alert: SQL Injection Risk On Aug 31 we posted an alert regarding an SQL Injection Vulnerability Further code review has revealed that the proposed code fix was incomplete. Also, the "fix" recommended previously was somewhat complicated to implement due to the need to edit PHP files in a few places. As such, the following fix is recommended. ALL v1.2.x and v1.3.x STORES SHOULD INSTALL THIS SIMPLE PATCH:

                  Kommentar


                    #10
                    Hallo,

                    erstmal danke für den Hinweis und den sehr guten Support!

                    Ich habe mir das mal angeschaut und finde diese Sicherheitslücke sehr bedenklich!

                    Ich habe von webchills die Datei "security_patch_v138_20080919.php" in den Ordner extra_configures gespeichert. Seit Ihr sicher das die Sicherheitslücke damit behoben wurde? Prüft zen-cart bei jeder Bestellung den Ordner extra_configures? Ich habe die Version 1.3.7.

                    Allen ein schönes Wochenende.

                    Gruß neworker

                    Kommentar


                      #11
                      Zitat von neworker
                      Prüft zen-cart bei jeder Bestellung den Ordner extra_configures?
                      Alle Files in Ordner includes/extra_configures werden automatisch included bei jedem Seitenaufruf, nicht nur bei Bestellungen. Daher ist das ein wirksamer Ort für einen Patch.
                      Es gibt noch einige andere Verzeichnisse, deren Dateien automatisch aufgerufen werden, eine gute Beschreibung dieses System findest Du unter ‘extra’ Files Automatic Inclusion hier:

                      Kommentar


                        #12
                        Hallo kermie,

                        Im ZenCart wurde eine Sicherheitslücke (Dank an Gulftech Security Research http://www.gulftech.org/?node=webappsec) entdeckt, die Angriffe ermöglicht, wenn in den PHP Settings des Servers der Wert magic_quotes_gpc auf OFF gesetzt ist.
                        Bei mir steht die magic_quotes_gpc auf on. Habe ich das richtig verstanden, dass ich dieses Patch dann nicht installieren muss???
                        Danke für deine Antwort
                        LG
                        Dragonius

                        Kommentar


                          #13
                          @webchills,

                          danke für die Erklärung und dem Link.

                          Kommentar


                            #14
                            @dragonius
                            Laut Dr. Byte in folgendem Thread:
                            UPDATE TO Security Alert: SQL Injection Risk On Aug 31 we posted an alert regarding an SQL Injection Vulnerability Further code review has revealed that the proposed code fix was incomplete. Also, the "fix" recommended previously was somewhat complicated to implement due to the need to edit PHP files in a few places. As such, the following fix is recommended. ALL v1.2.x and v1.3.x STORES SHOULD INSTALL THIS SIMPLE PATCH:

                            "ALL v1.2.x and v1.3.x STORES SHOULD INSTALL THIS SIMPLE PATCH"
                            Dr. Byte ist immer ernst zu nehmen
                            Würde also die Datei in includes/extra_configures spielen, mehr ist es eh nicht.

                            Kommentar


                              #15
                              :lol:
                              Hallo habe den Patch eingespiel, funtioniert gut. Danke!

                              Kommentar

                              Info zu diesem Forenarchiv:
                              Mit Release von 1.5.7 wurde die deutsche Zen Cart Version auf eine reine DIY-Lösung umgestellt.
                              Für einen Support via Forum stehen keine personellen und zeitlichen Ressourcen mehr zur Verfügung.
                              Dieses Supportforum bleibt im Nur-Lesen-Modus als Wissensarchiv noch online verfügbar.
                              PM Funktionalität, Registrierung und Posten neuer Beiträge sind deaktiviert.
                              Zugriff auf Anhänge in den Postings ist auch ohne Registrierung/Einloggen möglich.
                              FAQ und Downloadbereich des Forums wurden in die neue umfangreiche Knowledgebase auf der zen-cart-pro.at Website übernommen.

                              Das Development der deutschen Zen Cart Version geht wie bisher auf Github weiter.
                              Wir werden auch weiterhin neue Versionen bereitstellen und die Onlinedokumentation/Knowledgebase aktualisieren.
                              Fehler in der Software können auf Github als Issues gemeldet werden.
                              Follow us
                              aktuelle version
                              Zen Cart 1.5.7g deutsch
                              vom 12.12.2023
                              [Download]
                              Lädt...
                              X