SQL injection

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • SQL injection

    Hallo!
    Ich habe mich jetzt einmal über die sql-injections informiert. Ich bin draufgekommen, dass mein login-bereich total unsicher ist.

    meine sql abfrage lautet:
    "SELECT * FROM users
    WHERE username = '".$user."'
    AND pw = PASSWORD( '".$pw."' )";

    Wie könnte da eien eventuelle sql-injection aussehen?
    Ich habe an sowas gedacht, allerdings funktioniert das nicht.

    als user wird admin eingegeben und als pw x') or 1=1 limit 1 --

  • #2
    mysql_real_escape_string ist schon einmal hilfreich ...
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Hai,

      einfache Injection-Eingabe bei deinem Beispiel:
      [COLOR=crimson]Peter' /*[/COLOR]
      Damit wird deine Abfrage zu
      [COLOR=crimson]
      SELECT * FROM users WHERE username = 'Peter' /*' AND pw = PASSWORD( '".$pw."' )
      [/COLOR]

      Alles ab /* wird von MySQL als Kommentar interpretiert und nicht ausgewertet. Dann brauchst du das Passwort nicht mal.
      Gefährlich ist auch der Wert NULL bzw. das hexadezimale Äquivalent \x00.

      Ich wende auf alle Usereingaben schon prinzipiell mal ein htmlentities($usereingabe, ENT_QUOTES) an. Damit ist zumindest mal die halbe Miete gewonnen. strip_tags ist auch nicht schlecht (Allerdings weniger gegen SQL-Injection als mehr gegen XSS und CRFS).

      Vorsicht auch auf bewusst produzierte Fehlermeldungen. Mit deren Hilfe lässt sich oft die gesamte Struktur einer Tabelle rausfinden.

      LGs Stefan
      Man strahlt hier nicht in Wien - denn bald strahlt es aus Temmelin :-|

      Kommentar


      • #4
        Hallo!
        Die Sql - Injection funktionieren aber nicht, wenn ich magic_quotes_gpc auf 1, also on hab, oder?
        Zuletzt geändert von Kisi; 21.10.2006, 19:21.

        Kommentar


        • #5
          richtig. genauso ist "magic_quotes_gpc auf 1" dafür verantwortlich, dass deine waschmaschine das korrekte programm ausführt ....
          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


          Kommentar


          • #6
            Original geschrieben von Kisi
            Hallo!
            Die Sql - Injection funktionieren aber nicht, wenn ich magic_quotes_gpc auf 1, also on hab, oder?
            nicht ganz.
            x00 und x1a was für mysql wichtig ist, wird durch magic_quotes nicht mit slashes versehen.
            Slava
            bituniverse.com

            Kommentar

            Lädt...
            X