[PHP/FIX/!HEN-Script] Register.php Captcha (Sicherheits-FIX)

05/12/2015 13:17 #Metho#1
Was hab' ich den da gefunden^^?

Da hat man wohl eine Abfrage vergessen, nunja. Hier ist's:

-> Geht in die register.php -> Dort sucht ihr nach einer Zeile, die der ähnelt oder gleicht:

PHP Code:
      if((checkAnum($_POST['account']) && strlen($_POST['account'])>=&& strlen($_POST['account'])<=16) && checkAnum($_POST['pass'])  && strlen($_POST['pass'])>=&& strlen($_POST['pass2'])<=16 && !empty($_POST['pass2']) && (checkName($_POST['uname']) && strlen($_POST['uname'])>=&& strlen($_POST['uname'])<=20) && $_POST['pass']==$_POST['pass2'] && checkMail($_POST['email']) && strlen($_POST['email'])<=40 && $_POST['captcha'] == $_SESSION['captcha_id'] && $_POST['email']==$_POST['email2'] && (checkAnum($_POST['sicherheitsa']) && strlen($_POST['sicherheitsa'])>=&& strlen($_POST['sicherheitsa'])<=16) && checkInt($_POST['sicherheitsf']) && (checkAnum($_POST['loeschcode']) && strlen($_POST['loeschcode'])==7)) 
Dort sucht ihr nach der Captcha-Abfrage:

PHP Code:
$_POST['captcha'] == $_SESSION['captcha_id'
Kopiert die beiden Variabeln und macht das:

PHP Code:
isset ($_POST['captcha'], $_SESSION['captcha_id']) && 
Dies fügt ihr nun dort ein:

PHP Code:
if (isset ($_POST['captcha'], $_SESSION['captcha_id']) && .... 
Sieht dann so aus:

PHP Code:
if(isset ($_POST['captcha'], $_SESSION['captcha_id']) && (checkAnum($_POST['account']) && strlen($_POST['account'])>=&& strlen($_POST['account'])<=16) && checkAnum($_POST['pass'])  && strlen($_POST['pass'])>=&& strlen($_POST['pass2'])<=16 && !empty($_POST['pass2']) && (checkName($_POST['uname']) && strlen($_POST['uname'])>=&& strlen($_POST['uname'])<=20) && $_POST['pass']==$_POST['pass2'] && checkMail($_POST['email']) && strlen($_POST['email'])<=40 && $_POST['captcha'] == $_SESSION['captcha_id'] && $_POST['email']==$_POST['email2'] && (checkAnum($_POST['sicherheitsa']) && strlen($_POST['sicherheitsa'])>=&& strlen($_POST['sicherheitsa'])<=16) && checkInt($_POST['sicherheitsf']) && (checkAnum($_POST['loeschcode']) && strlen($_POST['loeschcode'])==7)) ... 
Somit wäre das gefixxt. Wie der Glitch funktioniert, müsst ihr schon selber erahnen können.

Somit :rolleyes:
05/12/2015 13:50 i[Remix]#2
Wo ist das ein Glitch?
Es wurde einfach nicht gecheckt, ob die Variablen existieren, jedoch auf Gleichheit überprüft.
05/12/2015 14:33 .Xilent#3
Um genau zu sein hast du da gar nichts gefunden. Du musst nicht überprüfen, ob die beiden Variablen gesetzt sind, da $_SESSION["captcha_id"] in der captcha.php im Verzeichnis captcha erstellt wird. (Bei jedem Aufruf neu) Wenn du nun das Input Feld an den Server sendest, wird der an den Server übertragene Wert mit der von $_SESSION["captcha_id"] verglichen. Wenn das Captcha Feld leer ist, dann vergleichst du '' mit der Session Variable von daher ist das keine Lücke. (Kann aber auch sein, dass du eine andere Version verwendest)
05/12/2015 15:09 #Metho#4
Quote:
Originally Posted by i[Remix] View Post
Wo ist das ein Glitch?
Es wurde einfach nicht gecheckt, ob die Variablen existieren, jedoch auf Gleichheit überprüft.
Quote:
Originally Posted by .Xilent View Post
Um genau zu sein hast du da gar nichts gefunden. Du musst nicht überprüfen, ob die beiden Variablen gesetzt sind, da $_SESSION["captcha_id"] in der captcha.php im Verzeichnis captcha erstellt wird. (Bei jedem Aufruf neu) Wenn du nun das Input Feld an den Server sendest, wird der an den Server übertragene Wert mit der von $_SESSION["captcha_id"] verglichen. Wenn das Captcha Feld leer ist, dann vergleichst du '' mit der Session Variable von daher ist das keine Lücke. (Kann aber auch sein, dass du eine andere Version verwendest)
1. Auf das, dass das die $_SESSION['captcha_id'] gesetzt ist, kannst du nicht zählen. Clientseitiges, kann immer manipuliert werden.

Quote:
PHP rightly complains that the variable $foo does not exist and the value of this non-existent variable is given as null.
Kommt natürlich drauf wie's behandelt wird. Bei mir in MAMP zeigt er NULL an aufm Server ERRor
05/12/2015 15:31 kangar00#5
Quote:
Originally Posted by Lord Metho View Post
1. Auf das, dass das die $_SESSION['captcha_id'] gesetzt ist, kannst du nicht zählen. Clientseitiges, kann immer manipuliert werden.
Machen alle die sich einen Server aufbauen Genius.:rolleyes:
Das Release ist nur eines deiner vielen unnötigen..
05/12/2015 16:18 #Metho#6
Quote:
Originally Posted by datshy View Post
Machen alle die sich einen Server aufbauen Genius.:rolleyes:
Das Release ist nur eines deiner vielen unnötigen..
Ich rede doch nicht vom Betreiber :facepalm:
05/12/2015 17:37 Azμre#7
Da bannt man ihm schon seinen alten Account (wahrscheinlich wegen Multiaccounting) und man denkt man ist die Plage los aber hier ist sie schon wieder in voller Montur! :facepalm:
05/12/2015 18:30 Yiv#8
Quote:
Originally Posted by Lord Metho View Post
Kommt natürlich drauf wie's behandelt wird. Bei mir in MAMP zeigt er NULL an aufm Server ERRor
null != "<captchavalue>"
Von daher, unnötig.

MfG
05/12/2015 18:53 Computerfreek#9
Ist schon uralt, lange bekannt und wurde auch schon releast.
Hier der Thread (von 2012!): [Only registered and activated users can see links. Click Here To Register...]
05/13/2015 12:42 /exit#10
Völlig unnötig, aber kennt man ja von dir. :)
05/13/2015 13:43 KΛIƬӨ#11
Quote:
Originally Posted by andrs.exit View Post
Völlig unnötig, aber kennt man ja von dir. :)
Und von dir kennt man natürlich nur nützliches. *faceplam*
05/14/2015 23:15 max19963#12
warum nicht einfach reCAPTCHA nutzen???
05/15/2015 15:11 #Metho#13
Quote:
Originally Posted by max19963 View Post
warum nicht einfach reCAPTCHA nutzen???
reCaptcha und noCaptcha haben die Möglichkeit durch die Audio-Wiedergabe absolviert zu werden. Also Audio speichern und dann bei der Google-API wiedergeben und es gibt dir den richtigen Text aus.
05/17/2015 18:24 xCPx#14
So Idee an sich ganz gut. Allerdings is dir glaub nicht bewusst, dass SESSION variablen keine Clientseitige geschichte sind...
05/17/2015 19:47 #Metho#15
Quote:
Originally Posted by xCPx View Post
So Idee an sich ganz gut. Allerdings is dir glaub nicht bewusst, dass SESSION variablen keine Clientseitige geschichte sind...
Doch da die Definition Clientseitig beeinflusst wird // POST Variabeln ebenfalls. Aber der Trick ist ansich ein alter Fuchs. :) AeroFox

Komm bitte mal Skype und zeig ich dir so bisschen AeroFox, hoffe du wirst erstaunt sein (positiv). Und mach nicht einen auf beleidigte Leberwurst :D

MfG Metho