Ergebnis 1 bis 2 von 2

Thema: STG Automailer - SQL Injection möglich

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Avatar von Gremlin
    Registriert seit
    05.07.2006
    Beiträge
    5.206

    Ausrufezeichen STG Automailer - SQL Injection möglich

    Soeben eine Lücke im STG Automailer gefunden, wodurch eine SQL Injection möglich ist. Diese wurde wohl schon bei Maddin (anteilclub.de) ausgenutzt, dort habe ich nach einer Lücke gesucht und bin darauf gestoßen.

    Bei Anteilclub hat der "Angreifer" in der vms_userdaten sämtliche Nicknamen gelöscht und die Userids verändert wodurch ein Login unmöglich war.

    Ursache


    In der Einbauanleitung heißt es:

    6.2 content/konto/userprofil.php

    Suche folgendes:
    PHP-Code:
    if ($_POST['aendern'] == 'Jetzt ändern!') { 
    und füge darunter folgendes ein:

    PHP-Code:
        if($_POST['mail_max']>=$mailer['mail_min'] && $_POST['mail_max']<=$mailer['mail_max']){
            
    db_query("UPDATE ".$db_prefix."_userdaten SET mail_max='".$_POST['mail_max']."' WHERE uid=".$_SESSION['uid'].""); 
            
    db_query("UPDATE ".$db_prefix."_userdaten SET min_verdienst='".$_POST['min_verdienst']."' WHERE uid=".$_SESSION['uid'].""); 
        } 
    Durch die ungeschützte Übergabe der Variablen an den SQL Query ist es möglich eine SQL Injection zu machen.

    Bugfix
    Suche:

    PHP-Code:
            db_query("UPDATE ".$db_prefix."_userdaten SET mail_max='".$_POST['mail_max']."' WHERE uid=".$_SESSION['uid'].""); 
            
    db_query("UPDATE ".$db_prefix."_userdaten SET min_verdienst='".$_POST['min_verdienst']."' WHERE uid=".$_SESSION['uid'].""); 
    Ersetze mit:
    PHP-Code:
            db_query("UPDATE ".$db_prefix."_userdaten SET mail_max=".(INT)$_POST['mail_max'].", min_verdienst=".(INT)$_POST['min_verdienst']." WHERE uid=".$_SESSION['uid'].""); 
    Habe bei Maddin erfolgreich eine SQL Injection ausgeführt und bei allen Usern die Spalte max_forcedt auf 9999999 gesetzt. SQL Injections sind besonders gefährlich denn hier kann der Angreifer unter Umständen Kontrolle über die ganze Datenbank erlangen.

    Getestet und gefunden in Version 1.0
    Diskutiere nie mit Idioten - sie holen Dich auf ihr Niveau und schlagen Dich dort mit Erfahrung!



  2. #2
    Erfahrener Benutzer
    Registriert seit
    07.07.2006
    Beiträge
    158
    Falls einer Kommastellen brauchen sollte, so muss er (int) mit (float) ersetzen

Ähnliche Themen

  1. SQL-Injection im Addon Refaktion für VMS2
    Von DeDiHo im Forum [HD] Programmieren
    Antworten: 2
    Letzter Beitrag: 30.04.2010, 12:07
  2. PN-Center by Skandal - XSS & SQL Injection
    Von Gremlin im Forum Sicherheitslücken
    Antworten: 6
    Letzter Beitrag: 05.03.2009, 06:22
  3. SQL Injection - Addon für Firefox
    Von Hardy im Forum Talk, talk, talk...
    Antworten: 5
    Letzter Beitrag: 08.01.2009, 16:35

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •