Login: mrhappiness hat gepennt

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

  • Login: mrhappiness hat gepennt

    Gehen wir mal davon aus, dass magic_quotes_gpc = Off ist, und wir einen nickname kennen: admin.

    Jetzt kann man sich mit Username admin'# einloggen - ohne Passwort.

    Außerdem kann man sich mit Username ' OR '1 (mit den ') und Passwort ') OR ('1 (wieder mit den') auch einloggen.

    SQL-Injection für Anfänger

    Naja gut, es ist nur ein Tutorial, und mir ist es auch nicht aufgefallen, bis mich grad jemand drauf hingewiesen hat, aber trotzdem sollte das im Tutorial verbessert werden, nich dass das Leute direkt verwenden und dann ein kleines Loch haben.
    hopka.net!

  • #2
    das wird mrhappiness jetzt ewig anhängen


    An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

    Kommentar


    • #3
      Original geschrieben von MaxP0W3R
      das wird mrhappiness jetzt ewig anhängen
      dann solltest du mal brav ein tut schreiben, so auf die schnelle meine ich, und dann keinen fehler drin haben.

      also stelle dich nicht so an.
      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


      • #4


        War doch nur ein Spass und keine Kritik (hab ja nicht geschrieben dass das Tutorial jetzt deswegen Mist ist)

        War halt nur eine kleine Stichelei.


        An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

        Kommentar


        • #5
          mh... dann wäre es nett, wenn du einen fehlerbereinigte version des Tuts hier bringst, oder happy zumindest deswegen bescheid gibst und evtl. sogar gleich ne lösung mitschickst!

          grss

          Kommentar


          • #6
            eine pm hat happy von mir bereits erhalten, nachdem ich den thread gesehen habe.

            die korrektur kann MP ja noch schnell posten.
            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


            • #7
              Ich bin mal so frei:

              PHP-Code:
              function check_user($name$pass)
              {
                  
              /*
                      Wenn in $name / $pass Anführungszeichen enthalten sind, stellen
                      diese eine Sicherheitslücke dar. Falls PHP diese Zeichen nicht
                      vorher entschärft hat, müssen wir das machen:
                  */
                  
              if (get_magic_quotes_gpc() == 0) {
                      
              $name addSlashes($name);
                      
              $pass addSlashes($pass);
                  }
                  
              $sql="SELECT UserId
                  FROM users
                  WHERE UserName='"
              .$name."' AND UserPass=MD5('".$pass."')
                  LIMIT 1"
              ;
                  echo 
              "<pre>" $sql "</pre>";
                  
              $resultmysql_query($sql) or die(mysql_error());
                  if ( 
              mysql_num_rows($result)==1)
                  {
                      
              $user=mysql_fetch_assoc($result);
                      return 
              $user['UserId'];
                  }
                  else
                      return 
              false;

              Extra ausführlich
              hopka.net!

              Kommentar


              • #8
                und wenn man noch mysql_escape_string() einsetzt, wird es noch besser.. ;-)
                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


                • #9
                  Meine version:

                  PHP-Code:
                  <?
                  function check($text)
                  {
                    for ($i = 0; $i<strlen($text); $i++) {
                     if (!ctype_alpha($text[$i]) && !ctype_digit($text[$i]) && $text[$i] != '_')
                       return false;
                    }

                    return true;
                  }

                  function connect()
                  {
                      $con= mysql_connect('servername','benutzer','passwort') or die(mysql_error());
                       mysql_select_db('datenbank, die die Benutzertabelle enthält',$con) or die(mysql_error());
                  }

                  function check_user($name, $pass)
                  {
                      // Prüfung von $name und $pass dass nur Namen und Zahlen vorkommen
                      // Erlaubt sind a-zA-Z0-9 und das Zeichen -
                      if(!check($name) && trim($name) != '') return false;
                      if(!check($pass) && trim($pass) !='' ) return false;
                      
                      $sql="SELECT UserId
                      FROM users
                      WHERE UserName='".$name."' AND UserPass=MD5('".$pass."')
                      LIMIT 1";
                      $result= mysql_query($sql) or die(mysql_error());
                      if ( mysql_num_rows($result)==1)
                      {
                          $user=mysql_fetch_assoc($result);
                          return $user['UserId'];
                      }
                      else
                          return false;
                  }

                  function login($userid)
                  {
                      $sql="UPDATE users
                      SET UserSession='".session_id()."'
                      WHERE UserId=".$userid;
                       mysql_query($sql);
                  }

                  function logged_in()
                  {
                      $sql="SELECT UserId
                      FROM users
                      WHERE UserSession='".session_id()."'
                      LIMIT 1";
                      $result= mysql_query($sql);
                        return ( mysql_num_rows($result)==1);
                  }

                  function logout()
                  {
                      $sql="UPDATE users
                      SET UserSession=NULL
                      WHERE UserSession='".session_id()."'";
                       mysql_query($sql);
                  }

                  connect();
                  ?>
                  edit : was wegen leerziechen, ctype liefert true bei leerzeichen, ganz vergessen
                  Zuletzt geändert von MaxP0W3R; 18.05.2004, 10:48.


                  An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

                  Kommentar


                  • #10
                    hat ja lang gedauert bis das jemand gefunden hat

                    @hopka
                    danke, gut erkannt, da hab ich nicht aufgepasst.
                    aber für ein tutorial zum umgang mit sessions ist das ja auch nicht sooo wichtig oder?
                    Ich denke, also bin ich. - Einige sind trotzdem...

                    Kommentar


                    • #11
                      Naja, es gibt aber dennoch viele Leute, die sich das so 1 zu 1 kopieren. z.B. mein kleiner Bruder
                      hopka.net!

                      Kommentar


                      • #12
                        die leute die es 1:1 kopieren sind es selbst schuld und die anderen machen da genug andere bugs rein
                        EDIT:
                        sorry für rauskramen, aber kann ich ja nichts für, dass hier seit nem monat nichts passiert ist!

                        Kommentar


                        • #13
                          Original geschrieben von TobiaZ
                          EDIT:
                          sorry für rauskramen, aber kann ich ja nichts für, dass hier seit nem monat nichts passiert ist!


                          *SCNR*
                          Ich denke, also bin ich. - Einige sind trotzdem...

                          Kommentar


                          • #14

                            Kommentar

                            Lädt...
                            X