Da der ein oder andere keine Ahnung hat von PHP, hier einmal ein Leak und Denkanstoß an Leute die Scripts von unbekannten Quellen verwenden.
Login.php
PHP
<?php
if($_SESSION['loggedIn'] == true){echo Header('Location: site.php?page=dashboard');};
$submit = $_POST['submit'];
$username = $_POST$_POST['account');
$password = $_POST$_POST['password'];
$false_PASSWORD = false;
$false_NAME = false;
$false_EMPTY = false;
if(isset($submit))
{
if($username && $password)
{
$query = mysqli_query($mysqlicon,"SELECT Name, Passwort FROM accounts WHERE Name = '$username'") or die ('Unable to execute query. '. mysqli_error($mysqlicon));
if(mysqli_num_rows($query) > 0)
{
while($row = mysqli_fetch_assoc($query))
{
$dbusername = $row['Name'];
$dbpassword = $row['Passwort'];
}
if($username == $dbusername && md5($password) == $dbpassword)
{
$_SESSION['Name'] = $dbusername;
$_SESSION['loggedIn'] = true;
header("Location: site.php?page=dashboard");
}
else $false_PASSWORD = true;
}
else $false_NAME = true;
}
else $false_EMPTY = true;
}
?>
<!DOCTYPE html>
<html>
<?php
include('includes/head.php');
?>
<body>
<?php
include('includes/navigation.php');
?>
<div id="main-content" class="animated fadeIn">
<div class="center"><img style="width: 20%;" src="colucp_files/images/logo.png" /></div>
<form id="login-form" action="" method="post">
<div class="form-group">
<label for="exampleInputEmail1">Account</label>
<input type="text" class="form-control" name="account" placeholder="Account">
</div>
<div class="form-group">
<label for="exampleInputPassword1">Kennwort</label>
<input type="password" class="form-control" name="password" placeholder="Kennwort">
</div>
<button name="submit" type="submit" class="btn btn-primary"><span class="glyphicon glyphicon-ok"></span> Anmelden</button>
<!-- <button class="btn btn-primary pull-right"><span class="glyphicon glyphicon-comment"></span> <a href="Forum">Forum</a></button>
<button class="btn btn-primary pull-right" style="margin-right: 5px;"><span class="glyphicon glyphicon-info-sign"></span> Support</button> -->
<br /><br />
<?php
if($false_EMPTY == true){echo '<span class="label label-danger">Bitte fülle beide Felder aus um fortfahren zu können.</span>';}
else if($false_NAME == true){echo '<span class="label label-danger">Dieser Account ist nicht in unserer Datenbank registriert.</span>';}
else if($false_PASSWORD == true){echo '<span class="label label-danger">Das angegebene Passwort stimmt nicht mit dem des Accounts überein.</span>';}
?>
</form>
</div>
<?php
include('includes/footer.php');
?>
</body>
</html>
Alles anzeigen
Query = Unescaped
Username und Password sollten mit htmlspecialchars(); gesäubert werden
MySQL sollte mit PDO Treiber betrieben werden.
Warum mache ich die Lücke public?
Weil viele das Script verwenden und alle wo ich das getestet habe haben es nicht gefixxt. Hoffe jetzt fixxen die Leute es.
Blind Sql Injection
Beispiel : https://domain.com/login.php?submit&account=1'