Möglichkeit beide Captchas problemlos zu umgehen?

Feedback, Vorschläge, Erneuerungen

Moderator: frameguard

Möglichkeit beide Captchas problemlos zu umgehen?

Beitragvon jk » 18.03.2007, 21:08

Hallo. 4breeze hat die Entdeckung in diesem Thread gemacht, es gibt eine Methode die Captchas zu umgehen. Habe zur Demonstration nen kleines Testskript geschrieben:

<?php
session_start();
$var = $_GET['sicherheitscode'];
if($var==$_SESSION['nicht_definiert']){
echo "Bestanden.";
}
else{
echo "Nicht bestanden.";
}
?>

GET, nicht POST, damit man es direkt mit dem Browser nachvollziehen kann. Als test.php auf den Webserver hochladen, und dann mit /test.php und /test.php?sicherheitscode=42 ausprobieren. Ist sicherheitscode nicht definiert, weil der Spambot nichts derartiges per GET oder POST an den Webserver sendet, und ist die Session-Variable nicht definiert, weil der Spambot das Captcha-Bild nicht abruft, gilt die Spamprüfung trotzdem als bestanden. Vorbeigemogelt...

Wie 4breeze schreibt, vorher prüfen, ob Session-Variable definiert:

if(!isset($_SESSION['captcha_spam'])) {
die('Fehler: session nicht definiert (bitte mail an Admin)<br /><br /><a href="gbook.php">Zurück ins Gästebuch</a>');
}

Gruß

JK
jk
 
Beiträge: 6
Registriert: 18.03.2007, 10:24

Beitragvon Rob [Admin] » 06.04.2007, 11:32

Ja vielen Dank, das stand schon lange auf der toDo Liste. Ich habs nun auf der Seite im Script angepasst, neben ein paar anderen Änderungen.
Rob [Admin]
Site Admin
 
Beiträge: 143
Registriert: 23.12.2006, 12:27

Beitragvon P1TBULL » 15.05.2007, 09:07

Moin,

ich hab auch eine Möglichkeit gefunden dass die Spambots den Captcha Schutz nicht mehr umgehen können. Anstatt mit Sessions zu arbeiten habe ich den Wert in der Datenbank gespeichert und wieder ausgelesen. Bisher hatte ich keine Spam-Nachrichten mehr im Gästebuch!
P1TBULL
 
Beiträge: 4
Registriert: 15.05.2007, 09:02

Beitragvon frameguard » 15.05.2007, 14:21

@PITBULL: Eine ähnliche Lösung hatte ich in der ursprünglichen Variante des Buchstaben-Zahlen-Mischcodes drin, nur war's halt nicht die DB. Das Problem bei der Lösung ist, daß jedes Mal, wenn ein neuer Code generiert wird, der alte natürlich überschrieben wird.

Nun stell Dir vor, zwei User kommen gleichzeitig auf Deine Seite und wollen sich im GB verewigen - schon kriegt entweder einer oder beide eine Fehlermeldung, daß der Sicherheitscode, obwohl richtig eingegeben, falsch sei. Weil er sich vom ersten zum zweiten User ja geändert hat.

Deshalb ist die Session-Variante doch die beste, nur muß eben, wie jk schon geschrieben hat, sichergestellt sein, daß die Session-Variable auch wirklich definiert ist, sonst kann der Code umgangen werden.
frameguard
 
Beiträge: 120
Registriert: 05.03.2007, 19:19
Wohnort: Wien

Beitragvon P1TBULL » 16.05.2007, 11:09

Ja stimmt da hast du Recht! Aber ich könnte ja die IP mit speichern und überprüfen ob der Code mit der passenden IP richtig ist?!
P1TBULL
 
Beiträge: 4
Registriert: 15.05.2007, 09:02

Beitragvon frameguard » 16.05.2007, 11:34

Das ginge natürlich, daß Du pro IP getrennt den Code speicherst und erst beim Auswerten dann den Code, der zu einer bestimmten IP gehört, löschst. Aber wird das nicht ein bißchen kompliziert?
frameguard
 
Beiträge: 120
Registriert: 05.03.2007, 19:19
Wohnort: Wien

Beitragvon P1TBULL » 17.05.2007, 11:46

Ob kompliziert oder nicht, hauptsache ich hab keine Spamnachrichten mehr im Gästebuch! Hab mir sogar noch ein zusätzliches Sicherheitstool eingebaut:

Bild
Der Sicherheitscode kann nur noch über das Tastenfeld eingegeben werden und nicht direkt per Tastatur in das Textfeld eingetragen werden. Bisher hatte ich keine Spam-Nachrichten mehr im Gästebuch! :D
P1TBULL
 
Beiträge: 4
Registriert: 15.05.2007, 09:02

Beitragvon frameguard » 17.05.2007, 13:50

Das mit der Bildschirmtastatur klingt nach einer guten Idee, funzt aber nur bei reinem Zahlencode - sonst wird die Tastatur zu groß. ;)
frameguard
 
Beiträge: 120
Registriert: 05.03.2007, 19:19
Wohnort: Wien

Beitragvon P1TBULL » 17.05.2007, 15:07

Klar :wink:

Deswegen hab ich die Captcha.php ja so abgeändert dass nur noch Zahlen generiert werden. Wäre ansonsten echt etwas groß geworden. Ich bin eh noch nicht so ganz damit zufrieden wie es jetzt aussieht und bin daher am überlegen ob ich das Tastenfeld inkl. Captcha und Eingabefeld in eine andere Datei auslagern soll die als Popup geöffnet wird. Aber das hat noch etwas Zeit
P1TBULL
 
Beiträge: 4
Registriert: 15.05.2007, 09:02


Zurück zu Feedback

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste

cron