Angriff auf SQL-Datenbank ...

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

  • #16
    ja. es wird zwar nichts in der DB eingetragen, aber die übergebenen werte (daten) hast du ja.

    und genau die sollst du mitloggen...
    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


    • #17
      und genau die sollst du mitloggen...
      und am besten so schnell wie möglich , das problem klingt nämlich recht interessant ... wieviel email sind es am tag? zuviel, um per mensch kontrolliert zu werden? warn nicht grad ferien ...
      Die Zeit hat ihre Kinder längst gefressen

      Kommentar


      • #18
        ich würde einen bot (fast) ausschliessen ... den bildcode per ocr auslesen, halte ich für unrealistisch, da der kontrast relativ schwach ist (im zweifel nochmal niedriger setzen und mal ne schreibschrift verwenden) ...

        entweder hat das script eine andere lücke (einen direktzugriff auf die db schliesse ich aus, da mails versendet werden => code?) oder der/diejenige(n) geben das ganze händisch ein ... dann hilft imho nur noch der versuch einer ipsperre

        ich würde zunächst mal für einige tage
        1. eine neue tabelle anlegen
        2. timestamps + ip für jede anmeldung mitspeichern
        3. die emailbestätigung deaktivieren

        sammel die eingaben und werte ips und zugriffzeiten aus ... ein bot sollte mehrere einträge in kürzester zeit vornehmen.
        Kissolino.com

        Kommentar


        • #19
          @derHund: Vorgestern waren es fast 3.000 Einträge. Gestern waren es fast 1.500 Einträge. Heute waren es fast 1.000 Einträge. Ich konnte erkennen, dass immer 5 Einträge "zeitgleich" gemacht wurden, dann passiert etwa fünf bis zehn Sekunden nichts und dann wurden wieder Einträge vorgenommen.

          @Wurzel:
          Die Möglichkeit über OCR schließe ich auch aus.
          Lücken habe ich wirklich keine gefunden. Habe jede Möglichkeit (der Dateneingabe) ausprobiert. Was den Bot betrifft: siehe meine Anmerkungen Richtung derHund.

          Kommentar


          • #20
            Original geschrieben von Innuendo
            @derHund: Vorgestern waren es fast 3.000 Einträge. Gestern waren es fast 1.500 Einträge. Heute waren es fast 1.000 Einträge. Ich konnte erkennen, dass immer 5 Einträge "zeitgleich" gemacht wurden, dann passiert etwa fünf bis zehn Sekunden nichts und dann wurden wieder Einträge vorgenommen.
            gut, viel wichtiger wäre wie gesagt die anzahl der fehleingaben ... versuch, soviel informationen zu kriegen, wie möglich ...

            wenn möglich, post mal den link zur seite oder zumindest entsprechenden quellcode ...
            Die Zeit hat ihre Kinder längst gefressen

            Kommentar


            • #21
              Ich werde mal aufzeichnen, ob das Bild-Code-Feld überhaupt wirklich von dem Bot ausgefüllt wurde. Die IP-Adresse wird ja schon seit längerem aufgezeichnet.

              Kommentar


              • #22
                Schlechte Nachrichten:

                Nachdem ich mit aufzeichne, ob auch wirklich das Bild-Code-Feld korrekt ausgefüllt wurde, kann ich jetzt erkennen, dass der Spinner das, durch was auch immer, umgehen kann. Sprich: Es werden dennoch Einträge in der Datenbank gemacht.

                Falls es hilfreich sein sollte: Nachfolgend der verwendete Code.

                PHP-Code:
                <?php
                if(!empty($_POST['secCheck']))
                {
                       
                $error = (!isset($_SESSION['secCheck'])) ? TRUE FALSE;
                    
                $error = ($_SESSION['secCheck'] != $_POST['secCheck']) ? TRUE FALSE;
                }
                if(empty(
                $_POST['formVorname']) OR empty($_POST['formName']) OR empty($_POST['formeMail']))
                {
                    
                $error TRUE;
                }
                else
                {
                    
                $error FALSE;
                }

                if(
                $error)
                {
                        
                // hier die Formulardarstellung
                }
                else
                {
                        
                // hier dann die Eintragung in die DB und der Versand der eMail
                }
                ?>
                Das Zusammenstellen des Bildes ist in den Codeschnipseln bei Wurzels Beitrag "flooding ..." zu finden.

                Kommentar


                • #23
                  ändere doch mal den ordnernamen und den Dateinamen für die Eintragungsseite + der abarbeitenen Datei, und schaue wie lange er braucht, bis er wieder spamt.
                  mfg
                  marc75

                  <Platz für anderes>

                  Kommentar


                  • #24
                    Original geschrieben von Innuendo
                    Schlechte Nachrichten:

                    Nachdem ich mit aufzeichne, ob auch wirklich das Bild-Code-Feld korrekt ausgefüllt wurde, kann ich jetzt erkennen, dass der Spinner das, durch was auch immer, umgehen kann. Sprich: Es werden dennoch Einträge in der Datenbank gemacht.

                    Falls es hilfreich sein sollte: Nachfolgend der verwendete Code.

                    PHP-Code:
                    <?php
                    if(!empty($_POST['secCheck']))
                    {
                           
                    $error = (!isset($_SESSION['secCheck'])) ? TRUE FALSE;
                        
                    $error = ($_SESSION['secCheck'] != $_POST['secCheck']) ? TRUE FALSE;
                    }
                    if(empty(
                    $_POST['formVorname']) OR empty($_POST['formName']) OR empty($_POST['formeMail']))
                    {
                        
                    $error TRUE;
                    }
                    else
                    {
                        
                    $error FALSE;
                    }

                    if(
                    $error)
                    {
                            
                    // hier die Formulardarstellung
                    }
                    else
                    {
                            
                    // hier dann die Eintragung in die DB und der Versand der eMail
                    }
                    ?>
                    Das Zusammenstellen des Bildes ist in den Codeschnipseln bei Wurzels Beitrag "flooding ..." zu finden.
                    register_global = on?
                    übergibt er dir auch error = true?
                    mfg
                    marc75

                    <Platz für anderes>

                    Kommentar


                    • #25
                      Das kann ich nicht abändern, weil die URL zum Newsletter schon in ich weiß nicht wie vielen Publikationen beworben worden ist. Ändere ich jetzt das Dateisystem ab, kann sich ja überhaupt niemand anmelden.

                      Kommentar


                      • #26
                        ich würde die prüfung mal anders strukturieren. du überschreibst $error nämlich, wenn alle anderen form-daten richtig sind ...
                        PHP-Code:
                        <?php
                        $errorC 
                        TRUE;
                        if(!empty(
                        $_POST['secCheck']))
                        {
                               
                        $errorC = (!isset($_SESSION['secCheck'])) ? TRUE FALSE;
                            
                        $errorC = ($_SESSION['secCheck'] != $_POST['secCheck']) ? TRUE FALSE;
                        }
                        if(empty(
                        $_POST['formVorname']) OR empty($_POST['formName']) OR empty($_POST['formeMail']))
                        {
                            
                        $error TRUE;
                        }
                        else
                        {
                            
                        $error FALSE;
                        }

                        if(
                        $error && $errorC)
                        {
                                
                        // hier die Formulardarstellung
                        }
                        else
                        {
                                
                        // hier dann die Eintragung in die DB und der Versand der eMail
                        }
                        ?>
                        ^^ quick & dirty sollte das schon ausreichen.
                        Zuletzt geändert von Wurzel; 07.06.2004, 09:42.
                        Kissolino.com

                        Kommentar


                        • #27
                          Original geschrieben von marc75
                          register_global = on?
                          übergibt er dir auch error = true?
                          register_global ist on (Puretec-Server).

                          Ja, $error wird korrekt verarbeitet.

                          Kommentar


                          • #28
                            Original geschrieben von Wurzel
                            quick & dirty sollte das schon ausreichen.
                            Wenn, dann $error || $errorC, weil && sofort in den else-Teil springt. Jedenfalls bei mir.

                            Kommentar


                            • #29
                              Original geschrieben von Innuendo
                              register_global ist on (Puretec-Server).

                              Ja, $error wird korrekt verarbeitet.
                              wenn kein zugriff hast, ini_set funktioniert tadellos bei puretec (jedenfalls bei mir).

                              und siehe wurzels hinweis
                              mfg
                              marc75

                              <Platz für anderes>

                              Kommentar


                              • #30
                                Original geschrieben von Innuendo
                                Wenn, dann $error || $errorC, weil && sofort in den else-Teil springt. Jedenfalls bei mir.
                                ... ich sagte ja: quick & dirty. vergiss nicht $errorC am anfang auf "TRUE" zu setzen.
                                Kissolino.com

                                Kommentar

                                Lädt...
                                X