Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Flyff > Flyff Private Server
You last visited: Today at 00:49

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Injektion sicheres Registerscript

Discussion on Injektion sicheres Registerscript within the Flyff Private Server forum part of the Flyff category.

Reply
 
Old   #1
 
danny-98's Avatar
 
elite*gold: 0
Join Date: May 2009
Posts: 129
Received Thanks: 29
Injektion sicheres Registerscript

Streberteil
register.php
Code:
<h3 class="title"></h3> 
 <div id="text">

 <?php

 function exist($account){
 $sql = "SELECT * FROM ACCOUNT_TBL WHERE account='".$account."'";
 $result = mssql_query($sql);
 if(!$result) {
 die("MSSQL Error");
 }
 $check = mssql_num_rows($result);
 return $check;
 }





 if(isset($_POST['submit']))
 {
 $server = "PROGRAMMING-PC\SQLExpress";
 $user = "sa";
 $pass = "Zkowcvrzhtq5";
 $salt = "kikugalanet";

[COLOR="Red"] $username = htmlspecialchars(stripslashes($_POST['username']));
 $password = htmlspecialchars(stripslashes($_POST['password']));
 $password2 = htmlspecialchars(stripslashes($_POST['password2']));
 $ip = trim(htmlspecialchars($_POST['ip']));[/COLOR]

 ################################################## ###########

 [COLOR="#ff0000"]if(strlen($username) < 4 ||
 strlen($username) > 16)[/COLOR]
 {
 die("Dein Benutzername ist zu kurz/lang .<br>Er muss zwischen <b><u>4 und 16</u></b> Zeichen lang sein .");
 }

 if(strlen($password) < 4 ||
 strlen($password) > 16)
 {
 die("Dein Passwort ist zu kurz/lang .<br>Es muss zwischen <b><u>4 und 16</u></b> Zeichen lang sein .");
 }

 if($password != $password2)
 {
 die("Die Passwˆrter stimmen nich ¸berein.");
 }

 if (preg_match('/[^a-zA-Z0-9]/',$username)) 
 {
 die("Der Benutzername enthält unerlaubte Zeichen.");
 }
 if (preg_match('/[^a-zA-Z0-9]/',$password)) 
 {
 die("Das Passwort enthält unerlaubte Zeichen.");
 }

 ################################################## ###########

 $conn = mssql_connect($server,$user,$pass);

 if(!$conn)
 {
 die("Connection failed!<br>");
 }

 $select = mssql_select_db("ACCOUNT_DBF",$conn);

 if(!$select)
 {
 die("Can't select Database!<br>");
 } 

 ################################################## ###########

 if(exist($username) != '0')
 {
 die ("Der Benutzername ".$username." wird schon benutzt .");
 }



 ################################################## ###########

 // $username = strtolower($username);
 //$password = strtolower($password);
 $password = md5($salt . $password);

 $ipadress = $ip;
 mssql_query("USE [ACCOUNT_DBF]
 SET NOCOUNT ON
[COLOR="#ff0000"] INSERT INTO ACCOUNT_TBL (account, password, id_no1, id_no2, isuse, member, realname, cash)
 VALUES ('$username', '$password', '$password', '$password', 'T', 'A', 'F', '1000')
 INSERT INTO ACCOUNT_TBL_DETAIL (account, gamecode, tester, m_chLoginAuthority, regdate, BlockTime, EndTime, WebTime, isuse, email)
 VALUES ('$username', 'A000', '2', 'F', '17.04.2010', '17.04.2010', '20990101', '20050101', 'O', '$email')");[/COLOR]




 if($execute)
 {
 echo 'Account wurde <font color="green">erfolgreich</font> erstellt !';
 }
 else
 {
 echo 'Account wurde <font color="green">erfolgreich</font> erstellt !';
 }

 mssql_close($conn); 
 }
 else
 {


 ?>
 <center>
 <form action="register.php" method="post">
 <table>
 <tr>
 <td colspan="2" align ="center">
 <h3>Account erstellen</h3>
 </td>
 </tr>
 <tr>
 <td align ="right">
 Account :
 </td>
 <td>
 <input type="text" size="20" name="username" maxlength="[COLOR="#ff0000"]16[/COLOR]" />
 </td>
 <td>&nbsp;</td>
 </tr>
 <tr>
 <td align ="right">
 Passwort :
 </td>
 <td>
 <input type="password" size="20" name="password" maxlength="32" />
 </td>
 </tr>
 <tr>
 <td align ="right">
 Passwort widerh. :
 </td>
 <td>
 <input type="password" size="20" name="password2" maxlength="32" />
 </td>
 </tr>
 <tr>
 <td>
 <input type="hidden" size="20" name="ip" maxlength="32" value="<?php echo $_SERVER['REMOTE_ADDR']; ?>"/>
 </td>
 </tr>
 <tr>
 <td colspan="2" align="center">
 <input type="submit" name="submit" value="Account erstellen" />
 </td>
 </tr>
 </table>
 </form>
 </center>
 <?php
 }
 ?>

 </div>

 <br>
 <br>
 <br>
danny-98 is offline  
Thanks
1 User
Old 04/25/2011, 00:31   #2



 
Daniiii's Avatar
 
elite*gold: 260
Join Date: Nov 2007
Posts: 12,855
Received Thanks: 4,319
sehr schön wie du 2 fertige scripts zusammengeschmissen hast.
Daniiii is offline  
Old 04/25/2011, 00:31   #3
 
elite*gold: 0
Join Date: Jan 2011
Posts: 373
Received Thanks: 114
das gibt es schon mehrere 10000n mal
~Product~ is offline  
Old 04/25/2011, 00:33   #4
 
danny-98's Avatar
 
elite*gold: 0
Join Date: May 2009
Posts: 129
Received Thanks: 29
nein ich habe es umgeschrieben und es injektionsicher gemacht versuch doch mal die standartinjektion
' or '1'='1' --
das llerzeichen hinter den -- nicht vergessen
okay ich makier die entscheidenen stellen nochmal
danny-98 is offline  
Old 04/25/2011, 09:30   #5
 
Jay Niize's Avatar
 
elite*gold: 0
Join Date: Oct 2009
Posts: 4,851
Received Thanks: 3,417
Hmm.. Bis 16 Zeichen, na?

';shutdown;--

Hat nur 13 Stellen, und weg ist der Server :3

Mein Tipp : Macht es bis maximal 10, dann gibts keine Injetcs mehr, bzw SQL Injects. Xss Könnte ei einer unsicheren HP noch drin sein :3

Achja : Gibts schon in Homepage Addons, aber trotzdem nett gemeint
Jay Niize is offline  
Old 04/25/2011, 11:25   #6
 
danny-98's Avatar
 
elite*gold: 0
Join Date: May 2009
Posts: 129
Received Thanks: 29
Nein injektion geht bei dem script nicht das script wandelt das ' z.b. in einen html specialchar
danny-98 is offline  
Old 04/25/2011, 13:58   #7
 
Pumbaaa's Avatar
 
elite*gold: 20
Join Date: Apr 2009
Posts: 804
Received Thanks: 829
Quote:
Originally Posted by Jusikid View Post
Hmm.. Bis 16 Zeichen, na?

';shutdown;--

Hat nur 13 Stellen, und weg ist der Server :3

Mein Tipp : Macht es bis maximal 10, dann gibts keine Injetcs mehr, bzw SQL Injects. Xss Könnte ei einer unsicheren HP noch drin sein :3

Achja : Gibts schon in Homepage Addons, aber trotzdem nett gemeint
Mhmmm bist wohl nen ganz schlaues Kerlchen.
Nur halt gibts in php auch Befehle, die bestimmte Zeichen sperren....
Pumbaaa is offline  
Old 04/25/2011, 14:01   #8
 
elite*gold: 4
Join Date: Apr 2011
Posts: 398
Received Thanks: 34
jo,selber meinung wie pumaa, das ist die einzige moeglichkeit.
mil laengenaenderung etc lol das ist schwachsinn. Hat eigentlich hier irgentjemand schonmal von firebug gehoert, ich glaub ich bin der einzige....
Yokomi is offline  
Old 04/25/2011, 14:04   #9
 
Pumbaaa's Avatar
 
elite*gold: 20
Join Date: Apr 2009
Posts: 804
Received Thanks: 829
Ich kenn Firebug, aber wenn dus per php auf 10 Zeichen reduzierst, was natürlich Schwachsinn ist, funktioniert das auch nicht ;D
Pumbaaa is offline  
Old 04/25/2011, 18:55   #10
 
danny-98's Avatar
 
elite*gold: 0
Join Date: May 2009
Posts: 129
Received Thanks: 29
Bestimmte zeichen sperren zu lassen ist aber leistungsaufwendiger
und so kleiner guck dir die function erstmal genau an bevor du laberst

und das script filtert auch die illegalen zeichen raus versuch doch mal nen injektion code man-.-'
danny-98 is offline  
Reply


Similar Threads Similar Threads
V15 Registerscript
08/21/2010 - Flyff Private Server - 1 Replies
Hello People from E*PvPers, I need some stuff for my new v15 server, Does someone have a v15 registerscript with a config in it ? Does someone have a cool webtemplate ?? (With WORKING registerpage for v15) Thank you,
SQL-Injektion
03/23/2010 - Metin2 Private Server - 3 Replies
Hi, ich wollte mal fragen, ob beispielsweise bei der Regipage von xBloomx die Möglichkeit einer SQL-Injection besteht...:rolleyes:
Registerscript für Root
12/19/2009 - Metin2 Private Server - 1 Replies
Gibt es ein vorgefertigtes Regiscript für Rootserver. Oder da wir die DB gerade über Hamachi bearbeiten, ein Script was man bei ohost uploaden kann und es trotzdem klappt?
[HowTo] SQL Injektion
10/06/2009 - Tutorials - 5 Replies
Dies ist ein kurzes HowTo, um zu verstehen was mit einer SQL-Injektion gemeint ist und wie sich diese ausnutzen lässt. Diese Methode basiert grundsätzlich auf der ungenügenden Prüfung von Benutzereingaben und lässt sich fast immer vermeiden. Oftmals denken Programierer zum Zeitpunkt des Codings nicht daran, welches Schadenspotiential das ungeprüfte Weiterreichen von Benutzereingaben an den SQL-Interpreter. Dabei kommen in keinster Weise Buffer-Overflows zum Einsatz oder sonstige Hacks. ...



All times are GMT +1. The time now is 00:49.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.