Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Bugfix für SQL Injection für modified eCommerce Shopsoftware Shops vor Version 1.05

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.187
    • Geschlecht:
    Durch einen Fehler 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 für modified eCommerce Shopsoftware Shops vor Version 1.05 dringend empfohlen.

    Download hier: BUGFIX: SQL Injection
    Bugfix für SQL Injection für modified eCommerce Shopsoftware Shops vor Version 1.05


    Linkback: https://www.modified-shop.org/forum/index.php?topic=11243.0

    Anonym

    • Gast
    Kann es sein, dass die nullbyte injection nicht auf allen Servern funktioniert?
    Ich habe es jetzt auf zwei Testsystemen ausprobiert und in beiden Fällen meldet mir der Shop:
    Zitat
    Ihre eingegebene eMail-Adresse ist fehlerhaft – bitte überprüfen Sie diese.
    Beide Testsysteme schneiden die Eingabe offensichtlich nicht bei der versuchten nullbyte injection sondern werten die komplette Eingabe inkl. nullbyte und sql-injection als Mailadresse.

    Damit will ich hier keinesfalls Entwarnung geben sondern wundere mich nur, dass es scheinbar serverabhängig ist.

    cYbercOsmOnauT

    • modified Team
    • Beiträge: 914
    • Geschlecht:
    Kannst Du mal bitte folgendes testen?

    In der /inc/xtc_validate_email.php die Zeile (natürlich ist da normalerweise kein Abstand zwischen Backslash und 0, aber das kann man hier im Board nicht schreiben. Es wird gelöscht.)

    Code: PHP  [Auswählen]
    if (strpos($email,"\ 0")!==false) {return false;}
    ersetzen durch

    Code: PHP  [Auswählen]
    if (strpos($email,chr(0))!==false) {return false;}
    und schauen ob es dann geht?
    Wenn nicht, dann ändere die Zeile in

    Code: PHP  [Auswählen]
    $email = str_replace(chr(0), '', $email);
    Die letzte Methode löscht einfach alle Nullbytes aus dem E-Mail String. Das müsste dann auf jeden Fall klappen.

    Grüße,
    Tekin

    Viele Grüße,
    Tekin Birdüzen - Zend Certified Engineer

    p3e

    • Experte
    • Beiträge: 2.395
    Hallo Tekin,

    da hast Du mich falsch verstanden oder ich habe mich blöd ausgedrückt.
    Das "return false;" beim "nullbyte" funktioniert sicher bestens.

    Ich wollte aber an zwei Testsystemen von mir (beide xt:Commerce 3.0.4 SP2.1)  diese sql-injection einfach mal durchspielen, bevor ich den Patch mache. Dabei habe ich festgestellt, dass die sql-injection fehlschlug, da das Backslash scheinbar schon vorher abgefangen wurde. Kann es sein, dass es PHP-Versionen gibt, wo die "eregi" Funktion bezüglich dem "nullbyte" "entschärft" wurde oder dass das Backslash bereits woanders abgefangen wird?
    Den Patch habe ich natürlich trotzdem eingespielt.

    Grüße

    Klaus

    DokuMan

    • modified Team
    • Beiträge: 6.669
    • Geschlecht:
    @p3e: laufen deine Testsysteme auf Hostern mit PHP suhosin-patch?

    p3e

    • Experte
    • Beiträge: 2.395
    Ja.

    Phantom

    • Fördermitglied
    • Beiträge: 429
    Ich kann das nicht bewerten, aber es gibt wohl mehrere Nullbyte-Varianten, die nicht alle mit diesem Fix abgefangen werden.

    Fix für den Fix: xt:Commerce v3.0.X eregi (Nullbyte Injection) SQL Injection

    cYbercOsmOnauT

    • modified Team
    • Beiträge: 914
    • Geschlecht:
    Sorry aber das verstehe ich nicht ganz. Ich schlüssel einmal auf (die Spaces sind drin damit das Board es frisst)...
    "\ 0" <- Die ASCII Variante
    "\x00", <- So schreibt man einen ASCII Wert in Hex
    "\u0000" <- Selbiges in Unicode-Schreibweise
    "\ 000" <- Oktale Schreibweise des Zeichens

    Alle diese Strings führen zu ein und demselben Zeichen, dem Nullbyte aka ASCII 0. Es sind nur verschiedene Schreibweisen um PHP zu sagen welches Zeichen man sucht. Nach dieser Logik müsste auch chr(0) in der Liste stehen.

    Grüße,
    Tekin

    DokuMan

    • modified Team
    • Beiträge: 6.669
    • Geschlecht:
    Tekins Vorschlag mit

    Code: PHP  [Auswählen]
    $file = str_replace(chr(0), '', $string);

    sollte alle Varianten abdecken!

    Siehe auch:

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.187
    • Geschlecht:
    Sollten wir den Fix also nochmal überarbeiten?

    Grüße

    Torsten

    cYbercOsmOnauT

    • modified Team
    • Beiträge: 914
    • Geschlecht:
    Meine Meinung: Nein, denn a) macht sich Monkey Buisiness mit Halbwissen nur wichtig und b) existiert im modified eCommerce Shopsoftware schon seit geraumer Zeit kein eregi mehr und wurde durch preg_match ersetzt was sowieso nicht anfällig ist.

    Im August letzten Jahres wurden jedenfalls sämtliche eregi durch preg_match ersetzt.

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.187
    • Geschlecht:
    Argh... okay, wir haben ja schon die von dir empfohlene Variante im Fix drin. :doh: :datz:

    Grüße

    Torsten

    mizzy

    • Schreiberling
    • Beiträge: 302
    Ich hab zu dem Bufix eine andere triviale Frage.

    Oben steht:

    [...] Eine sofortige Installation des Patches wird für modified eCommerce Shopsoftware Shops vor Version 1.05 dringend empfohlen.
    [...]

    Da ich einen 1.05 installiert habe, bin ich davon ausgegangen, das der Patch für
    meinen Shop nicht relevant ist. Im Fix finden sich aber auch Dateien für 1.05.

    Anderseits steht in der Anleitung:

    Zitat
    [...]
    Eine sofortige Installation des Patches wird für modified eCommerce Shopsoftware Shops vor Version 1.05 dringend empfohlen.

    Alternativ empfehlen wir ein Update auf modified eCommerce Shopsoftware 1.05.
    [...]

    Das ist ein wenig verwirrend.

    Muss das Patch in einen 1.05 eingespielt werden, oder nicht, da der Fix ja auch geänderte Dateien für 1.05 enthält.

    Viele Grüße
    Micha

    GTB

    • modified Team
    • Gravatar
    • Beiträge: 6.221
    • Geschlecht:
    Hallo Micha,

    der Fix ist auch für 1.05 zu empfehlen, primär für die "passwort_double_opt.php" da dort die email Adresse unescaped für die DB Abfrage verwendet wurde, was dazu führen konnte, dass ein Kunde sich das Passwort nicht anfragen konnte.

    Deshalb ist es zu empfehlen, den Fix auch für die 1.05 einzuspielen.

    Gruss Gerhard

    cYbercOsmOnauT

    • modified Team
    • Beiträge: 914
    • Geschlecht:
    Der Patch ist für modified eCommerce Shopsoftware 1.05 nicht zwingend notwendig, aber schaden kann es auch nicht.

    rechtstexte für onlineshop