[Release]Registration Script v15 + ReCaptcha

07/06/2011 14:23 coolplayer48#1
Hallo,

hier mit gebe ich euch ein Register Script mit einem ReCaptcha.

So habe ich das Update fertig.

Hier mal ein neus Bild wie das ganze aussiehen kann. Es liegt ein leerer banner im Ordner mit bei (logo.png). Die logo.png könnt ihr beliebg ändern und desingen. Die logo.png ist leer so das ihr selber was rein desingen sollt. Habe ein Bild genommen mit einem Logo das man sieht wie das ganze aussieht.

Kurze Anleitung.

1. Führt die webCreateAcc.sql oder die webCreateAcc by Shining.sql in Managment Studio aus. Es ist egal welche von dennen zwei ihr nehmt eine davon muss gehen. Wenn webCreateAcc.sql nicht geht die webCreateAcc by Shining.sql nehmen.

2. Die register.php und die Ordner API,configs ins entsprechende Verzeichnis einfügen bei Xampp ist es htdocs.

3. Den Ordner configs öffnen und dann die reg_conf.php öffnen sieht so aus:
Dort tragt ihr dass entsprechende ein.

4. Apache starten und register.php aufrufen und Spaß haben.

Update v2 was ist neu ?

Bischen Frabe dem ganzen geben und mehre Fehler behoben. Auch der der hier weiter unten folgt.


Download: [Only registered and activated users can see links. Click Here To Register...]

VirusTotal: [Only registered and activated users can see links. Click Here To Register...]

Credits: 80% me fürs komplette überarbeiten/umschreiben des php Codes
10% Nilsator2 für die webCreateAcc.sql und webCreateAcc by Shining.sql
10% An Googel für das ReCaptcha [Only registered and activated users can see links. Click Here To Register...]
07/06/2011 14:35 TechLead#2
n1 also der capatcha xD mehr werden die anderen glaube ich ned benötigen und glaube die regi script ned sql injection geschütz nur ne bloße behauptung vom aussehen aber naja thanks haste für die mühe;D




Edit :kucke mir mal an obs sicher is^^



Edi2: so is sicher gerade angekuckt^^ also keine sorge haben müsst ihr bei dem script^^
07/06/2011 14:59 ~Product~#3
das captcha hat den sinn
das die account dbf wie es sedrika gerne macht
nicht zu gebombt wird also bringts um EINIGES mehr^^
07/06/2011 15:55 coolplayer48#4
^^ Anti SQL Injektion Skript ist drinne und sollte auch zu 100% gehen.
07/06/2011 22:33 hanns.g#5
<center><h1><u>Register:</u></h1>
<?php
require_once('API/recaptchalib.php');
$pubkey='6LdU6sUSAAAAAKDtN5TkL_LlOD5Al_SCyoPFOD0V' ; //your reCaptcha public key
$privkey='6LdU6sUSAAAAAMs-kqVdGJUSuz5wuNNpmbEL0dBw'; //your reCaptcha private key.
$design='red'; //reCaptcha style, found [Only registered and activated users can see links. Click Here To Register...]
?>
<script type="text/javascript">
var RecaptchaOptions = {
theme : '<?php echo $design; ?>'
};
</script>

<center>
<?php


require('./configs/reg_conf.php');
function doesUsernameExist($name){
$exit = FALSE;
$result = @mssql_query("SELECT * FROM ACCOUNT_TBL WHERE account='$name'");
if (mssql_num_rows($result) != 0){
$exit = TRUE;
}
return $exit;
}

if(isset($_POST['submit'])){
$user = preg_replace ("/[^A-Za-z0-9]/", "", $_POST['username']);
$pass = preg_replace ("/[^A-Za-z0-9]/", "", $_POST['password']);
$resp = recaptcha_check_answer ($privkey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],

$_POST["recaptcha_response_field"]);
if($_POST['username'] == ""){
echo '<font color="red">Enter a user.</font><br /><br />';
}
else if($_POST['password'] == ""){
echo '<font color="red">Enter a password.</font><br /><br />';
}
else if ((strlen($_POST['username']) > 16) || (strlen($_POST['username']) < 3)){
echo '<font color="red">The user should be 3 to 16 characters.</font><br /><br />';
}
else if ((strlen($_POST['password']) > 16) || (strlen($_POST['password']) < 3)){
echo '<font color="red">The password should be 3 to 16 characters.</font><br /><br />';
}
else if($_POST['username'] != $user){
echo '<font color="red">User with invalid characters.</font><br /><br />';
}
else if($_POST['password'] != $pass){
echo '<font color="red">Password with invalid characters.</font><br /><br />';
}
else if(strlen($_POST["recaptcha_response_field"]) == 0){
echo '<font color="red">Did you forget to enter reCaptcha?</font><br />';
}
else if(!$resp->is_valid){
echo 'You have entered the reCaptcha wrong, reCaptcha said:'.$resp->error;
}
else {
$pass = md5('kikugalanet' . $pass);
if(!doesUsernameExist($user)){
$stmt = mssql_init('webCreateAcc', $link);
mssql_bind($stmt, '@account', $user, SQLVARCHAR, false, false, 15);
mssql_bind($stmt, '@password', $pass, SQLVARCHAR, false, false, 36);
mssql_bind($stmt, '@email', $mail, SQLVARCHAR, false, false, 120);
mssql_execute($stmt) or die ("Something is wrong on the execution");
mssql_free_statement($stmt);
echo '<font color="Green">Register Successfull.</font><br /><br />';
}
else {
echo '<font color="red">User already Exist.</font><br /><br />';
}
}
mssql_close();
}

echo '<form action="#" method="post">';
echo 'Username: <input type="text" name="username" /><br />';
echo 'Password: <input type="password" name="password" /><br />';
echo '<input type="submit" name="submit" value="Register" />';
echo recaptcha_get_html($pubkey);

?>
</center>




</div>
<div class="cbox-ui cbox-end"></div>

</div>
<div class="cui cbottom"></div>

</div>




<?php
$ip = $_SERVER['REMOTE_ADDR'];
$time = date("l dS of F Y h:i:s A");
$fp = fopen ("[WEB]SQL_Injection.txt", "a+");
$sql_inject_1 = array(";","'","%",'"'); #Whoth need replace
$sql_inject_2 = array("", "","","""); #To wont replace
$GET_KEY = array_keys($_GET); #array keys from $_GET
$POST_KEY = array_keys($_POST); #array keys from $_POST
$COOKIE_KEY = array_keys($_COOKIE); #array keys from $_COOKIE
/*begin clear $_GET */
for($i=0;$i<count($GET_KEY);$i++)
{
$real_get[$i] = $_GET[$GET_KEY[$i]];
$_GET[$GET_KEY[$i]] = str_replace($sql_inject_1, $sql_inject_2, HtmlSpecialChars($_GET[$GET_KEY[$i]]));
if($real_get[$i] != $_GET[$GET_KEY[$i]])
{
fwrite ($fp, "IP: $ip\r\n");
fwrite ($fp, "Method: GET\r\n");
fwrite ($fp, "Value: $real_get[$i]\r\n");
fwrite ($fp, "Script: $script\r\n");
fwrite ($fp, "Time: $time\r\n");
fwrite ($fp, "==================================\r\n");
}
}
/*end clear $_GET */
/*begin clear $_POST */
for($i=0;$i<count($POST_KEY);$i++)
{
$real_post[$i] = $_POST[$POST_KEY[$i]];
$_POST[$POST_KEY[$i]] = str_replace($sql_inject_1, $sql_inject_2, HtmlSpecialChars($_POST[$POST_KEY[$i]]));
if($real_post[$i] != $_POST[$POST_KEY[$i]])
{
fwrite ($fp, "IP: $ip\r\n");
fwrite ($fp, "Method: POST\r\n");
fwrite ($fp, "Value: $real_post[$i]\r\n");
fwrite ($fp, "Script: $script\r\n");
fwrite ($fp, "Time: $time\r\n");
fwrite ($fp, "==================================\r\n");
}
}
/*end clear $_POST */
/*begin clear $_COOKIE */
for($i=0;$i<count($COOKIE_KEY);$i++)
{
$real_cookie[$i] = $_COOKIE[$COOKIE_KEY[$i]];
$_COOKIE[$COOKIE_KEY[$i]] = str_replace($sql_inject_1, $sql_inject_2, HtmlSpecialChars($_COOKIE[$COOKIE_KEY[$i]]));
if($real_cookie[$i] != $_COOKIE[$COOKIE_KEY[$i]])
{
fwrite ($fp, "IP: $ip\r\n");
fwrite ($fp, "Method: COOKIE\r\n");
fwrite ($fp, "Value: $real_cookie[$i]\r\n");
fwrite ($fp, "Script: $script\r\n");
fwrite ($fp, "Time: $time\r\n");
fwrite ($fp, "==================================\r\n");
}
}

/*end clear $_COOKIE */
fclose ($fp);
?>



Jetzt sollten keine SQL Injektion's mehr klappen :)

MfG
hanns.g
07/07/2011 07:17 TechLead#6
hab ich doch geschreiben ^^ das drinne is wollte auch posten ^^ aber wusste ne dmehr wie spoiler geht und wollte ned spammen ;D
07/07/2011 11:38 coolplayer48#7
Finds ja schön dass ihr helfen wollt aber hatte was anders geplant was da rein sollte. Nja wer bischen php kann und sich damit ausskennt weiss sicherlich wie ich es geschrieben habe und was mein Ziel war. Die "[WEB]SQL_Injection.txt" wird nicht umsonst erstellt.... Weil ihr es seit werde ich das komplette register überarbeiten und ein kleines desing einbauen.
07/07/2011 18:54 hanns.g#8
<link href="design.css" type="text/css" rel="stylesheet" />
<div id="seitenbereich">
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<div id="seitenbereich2">
<div id="inhalte">
<h1><u>Register:</u></h1>
<br>
<br>
<?php
require_once('API/recaptchalib.php');
$pubkey='6LdU6sUSAAAAAKDtN5TkL_LlOD5Al_SCyoPFOD0V' ;
$privkey='6LdU6sUSAAAAAMs-kqVdGJUSuz5wuNNpmbEL0dBw';
$design='red';
?>
<script type="text/javascript">
var RecaptchaOptions = {
theme : '<?php echo $design; ?>'
};
</script>

<center>
<?php


require('./configs/reg_conf.php');
function doesUsernameExist($name){
$exit = FALSE;
$result = @mssql_query("SELECT * FROM ACCOUNT_TBL WHERE account='$name'");
if (mssql_num_rows($result) != 0){
$exit = TRUE;
}
return $exit;
}

if(isset($_POST['submit'])){
$user = preg_replace ("/[^A-Za-z0-9]/", "", $_POST['username']);
$pass = preg_replace ("/[^A-Za-z0-9]/", "", $_POST['password']);
$resp = recaptcha_check_answer ($privkey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],

$_POST["recaptcha_response_field"]);
if($_POST['username'] == ""){
echo '<font color="red">Enter a user.</font><br /><br />';
}
else if($_POST['password'] == ""){
echo '<font color="red">Enter a password.</font><br /><br />';
}
else if ((strlen($_POST['username']) > 16) || (strlen($_POST['username']) < 3)){
echo '<font color="red">The user should be 3 to 16 characters.</font><br /><br />';
}
else if ((strlen($_POST['password']) > 16) || (strlen($_POST['password']) < 3)){
echo '<font color="red">The password should be 3 to 16 characters.</font><br /><br />';
}
else if($_POST['username'] != $user){
echo '<font color="red">User with invalid characters.</font><br /><br />';
}
else if($_POST['password'] != $pass){
echo '<font color="red">Password with invalid characters.</font><br /><br />';
}
else if(strlen($_POST["recaptcha_response_field"]) == 0){
echo '<font color="red">Did you forget to enter reCaptcha?</font><br />';
}
else if(!$resp->is_valid){
echo 'You have entered the reCaptcha wrong, reCaptcha said:'.$resp->error;
}

else {
$pass = md5('kikugalanet' . $pass);
if(!doesUsernameExist($user)){
$stmt = mssql_init('webCreateAcc', $link);
mssql_bind($stmt, '@account', $user, SQLVARCHAR, false, false, 15);
mssql_bind($stmt, '@password', $pass, SQLVARCHAR, false, false, 36);
mssql_bind($stmt, '@email', $mail, SQLVARCHAR, false, false, 120);
mssql_execute($stmt) or die ("Something is wrong on the execution");
mssql_free_statement($stmt);
echo '<font color="Green">Register Successfull.</font><br /><br />';
}
else {
echo '<font color="red">User already Exist.</font><br /><br />';
}
}
mssql_close();
}

echo '<form action="#" method="post">';
echo 'Username: <input type="text" name="username" /><br />';
echo 'Password: <input type="password" name="password" /><br />';
echo '<input type="submit" name="submit" value="Register" />';
echo recaptcha_get_html($pubkey);

?>
</center>






<?php
$ip = $_SERVER['REMOTE_ADDR'];
$time = date("l dS of F Y h:i:s A");
$fp = fopen ("[WEB]SQL_Injection.txt", "a+");
$sql_inject_1 = array(";","'","%",'"'); #Whoth need replace
$sql_inject_2 = array("", "","","""); #To wont replace
$GET_KEY = array_keys($_GET); #array keys from $_GET
$POST_KEY = array_keys($_POST); #array keys from $_POST
$COOKIE_KEY = array_keys($_COOKIE); #array keys from $_COOKIE
/*begin clear $_GET */
for($i=0;$i<count($GET_KEY);$i++)
{
$real_get[$i] = $_GET[$GET_KEY[$i]];
$_GET[$GET_KEY[$i]] = str_replace($sql_inject_1, $sql_inject_2, HtmlSpecialChars($_GET[$GET_KEY[$i]]));
if($real_get[$i] != $_GET[$GET_KEY[$i]])
{
fwrite ($fp, "IP: $ip\r\n");
fwrite ($fp, "Method: GET\r\n");
fwrite ($fp, "Value: $real_get[$i]\r\n");
fwrite ($fp, "Script: $script\r\n");
fwrite ($fp, "Time: $time\r\n");
fwrite ($fp, "==================================\r\n");
}
}
/*end clear $_GET */
/*begin clear $_POST */
for($i=0;$i<count($POST_KEY);$i++)
{
$real_post[$i] = $_POST[$POST_KEY[$i]];
$_POST[$POST_KEY[$i]] = str_replace($sql_inject_1, $sql_inject_2, HtmlSpecialChars($_POST[$POST_KEY[$i]]));
if($real_post[$i] != $_POST[$POST_KEY[$i]])
{
fwrite ($fp, "IP: $ip\r\n");
fwrite ($fp, "Method: POST\r\n");
fwrite ($fp, "Value: $real_post[$i]\r\n");
fwrite ($fp, "Script: $script\r\n");
fwrite ($fp, "Time: $time\r\n");
fwrite ($fp, "==================================\r\n");
}
}
/*end clear $_POST */
/*begin clear $_COOKIE */
for($i=0;$i<count($COOKIE_KEY);$i++)
{
$real_cookie[$i] = $_COOKIE[$COOKIE_KEY[$i]];
$_COOKIE[$COOKIE_KEY[$i]] = str_replace($sql_inject_1, $sql_inject_2, HtmlSpecialChars($_COOKIE[$COOKIE_KEY[$i]]));
if($real_cookie[$i] != $_COOKIE[$COOKIE_KEY[$i]])
{
fwrite ($fp, "IP: $ip\r\n");
fwrite ($fp, "Method: COOKIE\r\n");
fwrite ($fp, "Value: $real_cookie[$i]\r\n");
fwrite ($fp, "Script: $script\r\n");
fwrite ($fp, "Time: $time\r\n");
fwrite ($fp, "==================================\r\n");
}
}

/*end clear $_COOKIE */
fclose ($fp);
?>


damits überhaupt funktioniert und bei der design.css das .txt entfernen aber dann immer noch fehler die ich jetzt nicht suchen möchte schaus dir nochmal an :)
07/07/2011 21:34 Leo2222#9
Kann mir jmd mal helfen ich hab alles richtig eingestellt und die Hp funkt ohne Fehler nur werden die Felder zum eintragen nicht angezeigt.
Also steht nur da Register: Und danach nichts mehr.

Danke schonmal
07/07/2011 21:55 coolplayer48#10
Quote:
Originally Posted by Leo2222 View Post
Kann mir jmd mal helfen ich hab alles richtig eingestellt und die Hp funkt ohne Fehler nur werden die Felder zum eintragen nicht angezeigt.
Also steht nur da Register: Und danach nichts mehr.

Danke schonmal
Ja ist kein Proplem.

Geh in "C:\xampp\php" und sucht dort die Php.ini !

Öffne sie und suche nach:

;extension=php_mssql.dll

Wenn gefunden, einfach Simikolon wegnehmen (; rote farbe !)
Speicher nun die Php.ini und restartet Apache bzw Xampp .

Am besten auch die Xampp Version 1.7.3 verwenden die man hier hat [Only registered and activated users can see links. Click Here To Register...].
07/07/2011 22:22 Buttercake#11
Ich kann keine Chars löschen, wenn ich mir durch das Script ein Acc mache! Kennt wer eine Lösung? :)
07/07/2011 22:41 coolplayer48#12
Quote:
Originally Posted by Buttercake View Post
Ich kann keine Chars löschen, wenn ich mir durch das Script ein Acc mache! Kennt wer eine Lösung? :)
Auch dies das ist ein Fehler in den Files von Sedrika gewesen. Liegt soweit ich mich erinnere an der Neuz.exe einfach mal eine andere benutzen.
07/07/2011 22:49 Buttercake#13
Quote:
Originally Posted by coolplayer48 View Post
Auch dies das ist ein Fehler in den Files von Sedrika gewesen. Liegt soweit ich mich erinnere an der Neuz.exe einfach mal eine andere benutzen.
Wenn ich aber ein Acc per Hand mache, kann ich mein Char löschen...
Nur bei dem Script nicht >.<
07/07/2011 23:24 coolplayer48#14
Quote:
Originally Posted by Buttercake View Post
Wenn ich aber ein Acc per Hand mache, kann ich mein Char löschen...
Nur bei dem Script nicht >.<
Bei mir aufem Server gehts ohne zu mucken. Kann belibig chars löschen. Schon mal mit den chars eingeloggt und dann Propiert denn zu löschen ?. Ist doch die selbe funktion im Prinzip. Sollte dass dann immer noch nicht gehen gucke ich nochmal drüber.
07/08/2011 00:55 Buttercake#15
Keine Chance.
Bei mir kommt immer das:

Fuuu, Hilfe :D