[RLS] ❄❄ BETA - REGIPAGE incl. Script

12/29/2014 14:41 .Marcel'#16
Quote:
Originally Posted by NotEnoughForYou View Post
Ich werde sicherlich keinen direkten Angriff ausführen der dir schadet, allerdings als kleines Beispiel.

Benutzername:

testName' OR 'x'='x

Ergibt immer, dass der Nutzername schon vorhanden ist, da durch die Injection x = x folgt und das immer wahr ist, somit ist der num rows > 0.

Eine solche Injection kann natürlich auch abgewandelt werden um dir zu schaden. Ist dann zwar etwas anders, aber prinzipiell kein Problem wenn man weiß wie (was nicht sonderlich schwierig ist).
Wäre alles kein Problem, wenn er es aufgenommen hätte als Verbesserungsvorschlag und vielleicht sein Wissen dementsprechend anpasst.
Ich bezweifle ob er dein Beispiel versteht..
12/29/2014 14:44 NotEnoughForYou#17
Quote:
Originally Posted by .Marcel' View Post
Wäre alles kein Problem, wenn er es aufgenommen hätte als Verbesserungsvorschlag und vielleicht sein Wissen dementsprechend anpasst.
Ich bezweifle ob er dein Beispiel versteht..
Dann ist es leider sein Problem. Wenn man ihm schon zeigt, dass es kein Problem ist sein Script zu manipulieren (und extra ein Beispiel wählt, dass ihm nicht schadet) und er es immer noch nicht einsehen will, dann ist er selbst schuld. Soll er es halt verwenden und irgendjemand liest munter seine DB mit, klaut seine PSC Codes die er sicherlich in der DB speichert, etc.

Ich glaub manche wollen gar keine Hilfe von Leuten, die sich schon länger damit beschäftigen.

Btw. schon lange nicht mehr gesprochen. Wusste gar nicht, dass du hier noch aktiv bist ;)
12/29/2014 14:49 .Marcel'#18
Quote:
Originally Posted by NotEnoughForYou View Post
Dann ist es leider sein Problem. Wenn man ihm schon zeigt, dass es kein Problem ist sein Script zu manipulieren (und extra ein Beispiel wählt, dass ihm nicht schadet) und er es immer noch nicht einsehen will, dann ist er selbst schuld. Soll er es halt verwenden und irgendjemand liest munter seine DB mit, klaut seine PSC Codes die er sicherlich in der DB speichert, etc.

Ich glaub manche wollen gar keine Hilfe von Leuten, die sich schon länger damit beschäftigen.

Btw. schon lange nicht mehr gesprochen. Wusste gar nicht, dass du hier noch aktiv bist ;)
Traurig aber wahr.

Was heißt aktiv, habe momentan Urlaub und Zeit. Poste hier und da mal was in der M2 Sektion aber bei solchen Leuten sinkt die Motivation wieder..
12/29/2014 14:54 .Kibito#19
Um es jetzt mal nicht beleidigend auszudrücken:

- du musst die ganzen POST's escapen
- außerdem sind die MySQL Funktionen veraltet
- und die Abfragen bei der Registration sind auch nicht gut
damit meine ich das hier:
PHP Code:
elseif($username=="" OR $passwort == "" OR $email == "" OR $delete == "" OR $captcha == "") { 
Du solltest dir mal ein paar Tutorials angucken zum Thema PHP und MySQL im Bezug auf die Sicherheit.
12/29/2014 15:02 Sphinx²#20
Quote:
Originally Posted by M.YSCHA View Post
[Only registered and activated users can see links. Click Here To Register...]
Los heeeckt mich ihr brains :awesome:
Kriegt eh niemand hin
Jeder der sich hier ein bisschen auskennt, wird das hinkriegen.
  1. Deine Formfelder haben Fehler.
  2. Du betnutzt mysql_query (deprecated , wird bald aus php entfernt).
  3. Du hast kein Escaping was es ermöglicht SQL Injection zu verwenden.
  4. WHERE login LIKE '$username' ??? -> WHERE login = '$username'
  5. Mit escaping -> WHERE login = '".mysql_real_escape_string($username)."'
  6. Du hast Marcel angelogen.... Die IP wird in der Query verwendet.
  7. '2014-12-29 12:55:53' ???? -> NOW()

Jeder war mal anfänger, ich empfehle dir, dass du dir mal die Dokumentation mal anschaust und dir evtl. mal ein PHP Buch kaufst oder dir Videos darüber reinziehst.

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

Gruss
Dein Sphinx
12/29/2014 15:07 .Marcel'#21
Quote:
Originally Posted by Sphinx² View Post
Jeder der sich hier ein bisschen auskennt, wird das hinkriegen.
  1. Deine Formfelder haben Fehler.
  2. Du betnutzt mysql_query (deprecated , wird bald aus php entfernt).
  3. Du hast kein Escaping was es ermöglicht SQL Injection zu verwenden.
  4. WHERE login LIKE '$username' ??? -> WHERE login = '$username'
  5. Mit escaping -> WHERE login = '".mysql_real_escape_string($username)."'
  6. Du hast Marcel angelogen.... Die IP wird in der Query verwendet.
  7. '2014-12-29 12:55:53' ???? -> NOW()

Gruss
Dein Sphinx
Er versteht seinen eigenen Code nicht. :rolleyes:
12/29/2014 15:09 Sphinx²#22
Quote:
Originally Posted by .Marcel' View Post
Er versteht seinen eigenen Code nicht. :rolleyes:
Das könnte wohl gut möglich sein...
Man ist im Prinzip selber schuld wenn man es verwendet.


Gruss
Sphinx
12/29/2014 17:48 Mr. 'Avenue™#23
Hab's mal versucht, weiß nicht ob es richtig ist oder funktioniert.
Wär' nett wenn's jemand testen könnte.

Code:
<?php
	require("./inc/config.inc.php");
	$sqlServ = mysqli_connect(SQL_HOST, SQL_USER, SQL_PASS);
	if (mysqli_connect_errno())
	{
		echo "<b>Die Verbindung zum Datenbank-Server ist fehlgeschlagen!<b><br>
			  <a href='http://board.servername.de/'><b>Forum</b></a>";
		die;
	}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
	"http://www.w3.org/TR/html4/loose.dtd">
<html>
	<head>
		<link rel="stylesheet" type="text/css" href="style.css">
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<title><?PHP echo $serverSettings['titel_page'];?></title>
		<script src='https://www.google.com/recaptcha/api.js'></script>
	</head>
	<body>
		<div class="wrapper">
			<div class="logo">
				<img src="img/logo.png" alt="logo_s">
			</div>
			<div class="main_head">
				<h1>⇒ Registration für die BETA</h1>
			</div>
			<div class="main_content">
				<div class="youtube">
					<iframe width="340" height="290" src="//www.youtube.com/embed/OKzLC3P0AYI" frameborder="0" allowfullscreen></iframe>
				</div>
				<div class="registerx">
					<p>Alle Felder sind Pflichtfelder.</p>
					<?php
						$username = mysqli_real_escape_string($sqlServ, $_POST['username']);
						$passwort = mysqli_real_escape_string($sqlServ, $_POST['passwort']);
						$email = mysqli_real_escape_string($sqlServ, $_POST['email']);
						$delete = mysqli_real_escape_string($sqlServ, $_POST['delete']);
						$captcha = mysqli_real_escape_string($sqlServ, $_POST['g-recaptcha-response']);

						if(!isset($_POST['username']) OR !isset($_POST['passwort']) OR !isset($_POST['email']) OR !isset($_POST['delete']) OR !isset($_POST['g-recaptcha-response']))
						{
					?>
          			<form action="/" method="post">
						<input class="txtbox" type="text" size="24" maxlength="50" name="username" placeholder="Benutzername"><br>
						<input class="txtbox" type="password" size="24" maxlength="50" name="passwort" placeholder="Passwort"><br>
						<input class="txtbox" type="text" size="24" maxlength="50"name="email" placeholder="[Only registered and activated users can see links. Click Here To Register...]"><br>
						<input class="txtbox" type="text" size="24" maxlength="50"name="delete" placeholder="1234567"><br>
						<input class="register" type="submit" value="Start">
						<div class="g-recaptcha" data-sitekey="6Lewu_8SAAAAALvaTwOmGIq7OhYgUIXqkBG0RdWF"></div>
					</form>
					<?php
						}
						elseif($_POST['username']=="" OR $_POST['passwort'] == "" OR $_POST['email'] == "" OR $_POST['delete'] == "" OR $_POST['g-recaptcha-response'] == "")
						{
							echo "<p>Registration fehlgeschlagen.1</p>";
							echo '<br><a href="http://www.myscha.de">Versuch es nochmal!</a>';
						}
						else
						{
							$response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=6Lewu_8SAAAAAAZPv4q4ZUZ9fgEbYza45Jq6KUjt&response=".$captcha."&remoteip=".$_SERVER['REMOTE_ADDR']);
							if($response.success==false)
							{
								echo "<p>Registration fehlgeschlagen.</p>";
								echo '<br><a href="http://www.myscha.de">Versuch es nochmal!</a>';
							}
							else
							{
								$result = mysqli_query($sqlServ, "SELECT id FROM account.account WHERE login LIKE '$username'"); 
								$menge = mysqli_num_rows($result);
								if($menge == 0) 
								{ 
									$passwort = md5($passwort); 
									$ip= $_SERVER['REMOTE_ADDR'];
									$eintrag = "INSERT INTO account.account (login, password, email, social_id, last_play, web_aktiviert) VALUES ('".$username."', '".$passwort."', '".$email."', '".$delete."', '".date("Y-m-d H:i:s",time());."', '1')"; 
									$eintragen = mysqli_query($sqlServ, $eintrag);
									if($eintragen == true) 
									{ 
										echo "<p>Der Benutzer wurde erstellt.<br>Viel Spaß in der BETA!"; 
									} 
									else 
									{
										echo $username;
										echo $passwort;
										echo $email;
										echo $delete; 
										echo '<p>Registration fehlgeschlagen.</p><br><a href="http://www.myscha.de">Versuch es nochmal!</a>'; 
									}
								}
								else 
								{ 
									echo '<p>Registration fehlgeschlagen.</p><br><p>Benutzername schon vorhanden. </p><br><a href="http://www.myscha.de">Versuch es nochmal!</a>'; 
								}
							}
						}
					?>
				</div>
			</div>
			<div class="main_bot">
				<a href="http://www.Forum.de">Ab ins Forum</a>
			</div>
			<div class="footer">
				<p>Copyright by <a href="lnk"><?PHP echo $serverSettings['titel'];?></a>. All rights reserved.<br>
				Design by <a href="lnk">NyBu</a>.<br>
				Code by <a href="lnk">M.YSCHA</a>
			</div>
		</div>
	</body>
</html>
12/29/2014 18:20 Fydes#24
xss ist auch möglich...
zwar nett, dass du sowas kostenlos zur verfügung stellst, jedoch solltest du nicht jeden müll pubben, sondern erst deinen code verstehen.

mfg