Problem bei SQL injection

Dieses Thema im Forum "Sicherheit & Datenschutz" wurde erstellt von SeXy, 15. März 2007 .

Schlagworte:
  1. 15. März 2007
    Moin!
    Hab also jetzt den Get parameter bearbeitet.
    Allerdings ist das Query so aufgebaut:
    PHP:
    $sql  "SELECT * FROM table WHERE ID = '" . $_GET [ 'id' ]. "'"
    .
    Jetzt will ich aber in der URL etwas wie folgendes angeben: ...id=123';UPDATE+table+SET+value=key.
    Leider geht das nicht, da mein ' im GET Parameter immer escaped wird. Somit ist mein gesamter UPDATE Teil noch mit in den '...' und es wird nicht als extra SQL Befehl gewertet, sondern zählt zum WHERE ID = "...".

    Hoffe ihr habt mein Problem verstanden und könnt mir helfen ;-)
    Jeder fängt mal klein an.. Ist auch eher Spielkram, aber was solls. Ich muss ja was zum Lernen haben =)
     
  2. 15. März 2007
    AW: Problem bei SQL injection

    Das liegt an den Magic Quotes von PHP.
    PHP: get_magic_quotes_runtime - Manual
    PHP: get_magic_quotes_gpc - Manual

    stripslashes() um die zu entfernen.
     
  3. 15. März 2007
    AW: Problem bei SQL injection

    Ich versteh grade nicht, wie ich das anstellen solllte.
    Was SQL Injection ist weißt du sicherlich?
    Ich will damit ja eine fremde Seite manipulieren, indem ich an die ID einfach ein weiteres Query anhänge. Das muss ich ja so machen, weil ich keinen Zugriff auf die Dateien habe und das ganze nur über solche Lücken laufen kann.
    Wenn ich die Datei einfach editieren könnte hätt ich da ja das Query eingefügt.
     
  4. 15. März 2007
    AW: Problem bei SQL injection

    Schreib mal bitte den gesamten Codeblock, eine Zeile allein reicht möglicherweise zum Verstehen nicht aus

    Hab zwar länger nix mehr damit gemacht, informier mich gerade nochmal was für Möglichkeiten es gibt aber hast du nicht hier schon nen Fehler drin?

    id=123';UPDATE+table+SET+value=key

    sollte doch

    id=123';'UPDATE+table+SET+value=key

    sein oder?
    (wenn du eine Anweisung mit ' beendest musste die neue auch mit ' starten damit sie der "ursprüngliche" Code beenden kann )
     
  5. 15. März 2007
    AW: Problem bei SQL injection

    ein \ wird ebenso mit einem \ escaped ;-) Von daher also sinnlos.

    Orig. Code:
    PHP:
    $abfrage = mysql_query ( "select * from dieb_user_" . $digit . " WHERE `id` = '" . $_GET [ 'id' ]. "'" );
    Orig. Link:
    Code:
    file.php?id=123'+union+update+dieb_user_1+set+geld=999,+bekid=333+where+id=123
    
    anstatt dieb_user_1 müsste da dieb_user_$digit stehen, standardgemäß ist $digit aber eigentlich immer 1.
     
  6. 15. März 2007
    AW: Problem bei SQL injection

    Mir ist durchaus klar, was du vorhast. Ich habe dir versucht zu erklaeren, woran dein Vorhaben scheitert.
     
  7. 15. März 2007
    AW: Problem bei SQL injection

    Okey. Hab ich irgendwie nicht so ganz verstanden
    Naja, gibt's irgendwelche sinnvollen Lösungsansätze?
     
  8. 15. März 2007
    AW: Problem bei SQL injection

    Es gibt keinen Loesungsansatz fuer dein Problem...
     
  9. 15. März 2007
    AW: Problem bei SQL injection

    Mit url codierten und/oder hex codierten Zeichen könnte man sowas umgehen. Heißt also Queries komplett codieren. Zusätzlich mal alle Kommentarstrings der MySQL Versionen durchtesten, ob du mit einem SQL - Kommentar den Query manipulieren kannst und/oder feststellen kannst ob die spezielle MySQL Version Fehler aufweist. Vielleicht zusätzlich versuchen die php version zu fingerprinten und dann mal hier
    NVD - Home
    schauen ob es Exploits für die Serverumgebung gibt.

    Zusätzlich besteht noch das Problem, dass ich nicht glaube, dass der Webserver so eingestellt ist, multiple Befehle mit einem Query auszuführen.
     
  10. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.