Bugfix für SQL Injection

Patches & Bugfixes Kommentar schreiben

Durch einen Bug in der PHP-Funktion eregi (nullbyte injection) kann durch eine Attacke das Administrator-Passwort auf ein beliebiges Passwort gesetzt werden und somit Zugriff auf den Shop erlangt werden. Aus Sicherheitsgründen wird die genaue Vorgehensweise nicht näher dargelegt. Eine sofortige Installation des Patches wird empfohlen.

Edit 23.02.2011: Patch für Gambio hinzugefügt. Siehe auch Kommentar 16.
Edit 24.02.2011: Patch für xtcModified v1.00 bis 1.05 hinzugefügt.

Autor: xt:Commerce GmbH

Dateigröße 5,4 KiB - Downloads bisher 1.975
  sql_injection_fix_xtcommerce304.zip

Dateigröße 71,3 KiB - Downloads bisher 948
  gambio_patch_11_02_20.zip

Dateigröße 43,4 KiB - Downloads bisher 1.080
  sql_injection_fix_xtcmodified.zip

 

Weitere Beiträge, die Dich interessieren könnten

23 Kommentare bei “Bugfix für SQL Injection”

  1. 2W-Blog.de

    […] oder im Forum von XTC-Load.de: http://www.xtc-load.de/2011/02/bugfix-fur-sql-injection-v3-04-sp2-1/ […]

  2. Badaccessoires

    betrifft der bugfix auch xtc-modified?
    Hier wird ja preg_match()? eingesetzt.

  3. ts24

    Danke dir. Immer wichtig solche Beträge direkt zu beachten.

  4. André Estel

    @Badaccessoires Da ich nicht darauf wetten würde, das preg_match nicht auch für solche Angriffe empfänglich ist und der Bugfix recht kompakt ist, sollte man ihn auf jeden Fall integrieren

  5. André Estel

    Nachtrag: preg_match stolpert nicht über diesen Bug, dennoch hat ein Nullbyte nichts in der Mailadresse verloren und daher ist der Bugfix auch dann berechtigt. Erlaubte, aber ungewöhnliche Emailadressen können auch dazu führen, das der Kunde kein neues Passwort anfordern kann, da die Mailadresse im Originalcode nicht escaped wird.

  6. Borgel

    Könnte jemand eine kurze Anleitung erstellen, nach dem Prinzip *Suche* -> *Ersetze*.
    Habe an der Datei vor langer Zeit etwas geändert, nur weiss ich leider nicht mehr was genau das war.
    Vielen Dank

  7. Badaccessoires

    danke für den Tipp.
    Habe dieses code jetzt eingebaut:

    function xtc_validate_email($email) {
        if (strpos($email,"\0")!==false) {return false;}
        $valid_address = true;
  8. Kerim Alkim

    inc/xtc_validate_email.inc.php

    finde:

    function xtc_validate_email($email) {
    $valid_address = true;

    füge danach ein:

    // sql injection fix 16.02.2011
    if (strpos($email,"\0")!==false) {return false;}

    —————————–
    password_double_opt.php

    finde:

    xtc_db_query("update ".TABLE_CUSTOMERS." set customers_password = '".$crypted_password."' where customers_email_address = '".$check_customer['customers_email_address']."'");

    ersetze es mit:

    xtc_db_query("update ".TABLE_CUSTOMERS." set customers_password = '".$crypted_password."' where customers_email_address = '".xtc_db_input($check_customer['customers_email_address'])."'");

    Gruß Kerim

  9. michael

    Weiß jemand inwieweit Gambio davon betroffen ist?

  10. André Estel

    Zu beachten ist, das die Kommentarfunktion hier das Nullbyte herausfiltert, in den leeren Gänsefüsschen muss ein Slash 0 stehen:

    if (strpos($email,"\0")!==false)
  11. André Estel

    Genauergesagt ein Backslash 0, vielleicht könnte Ralph das ändern…

  12. Ralph

    Danke André für den Hinweis! Ich habe das in allen bisherigen Kommentaren korrigiert.

  13. Ralph

    Ich würde auch vorschlagen, die Diskussion ins Forum zu verlagern. Dort wird Code bei der Verwendung der vorgesehenen Tags auch ordentlich und ungefiltert dargestellt. Die Kommentarfunktion hier ist dafür ungeeignet.

    xtc-supportforum.de/viewtopic.php?f=30&t=4679

  14. Stefl0n

    In Gambio GX 1.10 wird in der xtc_validate_email.inc.php auch noch mit eregi geprüft und die xtc_db_input wird in der password_double_opt.php auch noch nicht verwendet.

    Ich persönlich würde also auch hier den Fix integrieren! Durch die Verwendung von eregi ist Gambio wohl potentiell noch eher gefährdet wie der XTCModified.
    Also auch hier wie von Kerim Alkim oben beschrieben die 2-3 Zeilen Code einfügen, um die Nullbytes abzufangen.

  15. ed

    Denke auch dass Gambio betroffen ist, habe zwar gerade keine Demo laufen, aber diese Funktionen wurden kaum verändert soweit ich weiß.
    Würde es definitiv auch bei Gambio ändern, wäre nur eine Frage der Zeit, bis jemand den exploit umbaut (Zumal es eine recht genaue Beschreibung zum Exploit im Web gibt…)

  16. Ralph

    Gambio hat nun selbst stillschweigend ein Patch herausgebracht. Offensichtlich interessiert es bei Gambio tatsächlich niemanden, was aus den Shops wird, deren Betreiber aktuell keinen Supportvertrag mehr laufen haben. So etwas nenne ich verantwortunglos!

    Wozu habt Ihr eigentlich einen Blog, wenn da nicht einmal solche Bugfixes veröffentlicht werden?!

    Das Gambio-Patch werde ich in den Mittagsstunden hier noch für alle einstellen.

  17. JF-Hosting

    […] auf den Shop erlangt werden. Eine sofortige Installation des Patches wird empfohlen. –> Download und weitere Informationen Anderen […]

  18. monkey-business.biz

    […] 2011Version: xt:Commerce v3.0.X Am 18.02.2011 wurde auf xtc-load.de über einen Patch für einen kritischen Fehler in xt:Commerce v3.0.4SP2.1 berichtet. Der SQL Injection Bugfix von xtc-load.de behebt NICHT alle […]

  19. Tim

    mmmh… Dieser Fix scheint nicht alle Fehler zu beheben. Habe gerade diese Seite hier gefunden http://www.monkey-business.biz/1586/xtcommerce-v3-0-x-eregi-nullbyte-injection-sql-injection/

    Ich habe das gerade getestet. Es geht sowohl mit “\000″ als auch mit “\x00″.

  20. André Estel

    Was genau hast Du getestet? Ich kann nicht bestätigen, das der originale Patch diese Fälle nicht abdeckt. Die Notation “\u0000″ funktioniert gar nicht, sondern wird als String verwendet. Alle anderen sind nur Repräsentationen des Nullbytes in verschiedenen Notationen (Hexadezimal, Oktal).

  21. grafikmaker.de

    […] Update kann HIER runter geladen werden. Desweiteren bietet der Blog xtc:load ebenfalls den Download an sowie die Updates speciell für Gambio und […]

  22. Sascha

    Bitte überprüfen, ob bei euch bereits eine 1.txt im root oder unter images oder sonst irgendwo erstellt wurde. diese beinhaltet eine webshell, welche von anderen shops aufgerufen und durch eval(file_get_contents ausgeführt wird. Unbedingt alle php-Dateien nach eval(file_get_contents scannen!

  23. Adrian Preuß

    Aus Sicherheitsgründen wird die genaue Vorgehensweise nicht näher dargelegt.

    Wieso dass? Ich finde die Vorgehensweise Interessant, damit ich als Programmierer die Schwachstelle eventuell selbst schließen kann – Vielleicht findet sich durch dieses Verfahren weitere Relevante stellen, und vielleiocht sollte ich selbst sehen können ob unsere Shops auch gefixxt werden müssen. Schließlich wird hier nicht beschrieben welche Versionen davon betroffen sind.

    Außerdem ist eregi deprecaced, genrell sollte man des mit neueren Methoden Matchen.

Kommentar schreiben

Hier findest Du Platz für Deine Meinung, Dein Lob, Deine Kritik. Bitte nutze diese Funktion nicht für Supportanfragen! Wenn Du Fragen zu Modulen, Fehlermeldungen oder ähnliches hast, bist Du in unserem eCommerce-Forum herzlich willkommen.

© 2005 - 2015 by xtc-load.de