Shellsec

Fuld version: [PHP] Login sha
Du ser lige nu en skrabet udgave af vores indhold. Se den fulde version med ordentlig formatering.
Sider: 1 2 3
Hej!
Er ved at lave et mindre website for en til en game server men databasen har sha hashed passwords. Nu er jeg ikke den store php koder når det kommer til kryptering osv. Men hvordan søren skal jeg matche passworded med et sha password? Måske lidt nedern  at skulle skrive et sha password for at logge ind xD

Min kode:

Kode:
<?php

$user_username = "";

if (isset ($_POST['submit_login']))
{
$user_username = $_POST['username'];
$user_password = $_POST['sha_pass_hash'];

$errormsg = "";

// ==============================================================

// Validér formulardata

if ($user_username == "")
{
$errormsg .= "Insert username<br />";
}

if ($user_password == "")
{
$errormsg .= "Insert password<br />";
}

// ==============================================================

if ($errormsg == "")
{

$query = "SELECT * FROM account
 WHERE username = '$user_username'
 AND   sha_pass_hash = '$user_password'";

$result = mysqli_query ($db_link, $query) or die (mysqli_error ($db_link));

$antal = mysqli_num_rows ($result);

if ($antal == 1)
{
$row = mysqli_fetch_assoc ($result);

$_SESSION['user_id']       = $row['id'];
$_SESSION['user_username'] = $row['username'];

header ('Location: index.php');
exit;
}
else
{
$errormsg .= "Forkert brugernavn eller password";
}
}
}
?>

<?php
// ==============================================================
if (isset ($errormsg) && $errormsg != "")
{
echo "<div id='errormsg'>$errormsg</div>";
}
// ==============================================================
?>
<div id="loginsection">
    <div class="menubg">
        <p class="menufont">Login</p>
    </div>
<div id="loginarea">
        <form id="loginform" method="POST">
        <input id="username" placeholder="Username" type="text" name="username" />
        <input id="password" placeholder="Password" type="password" name="sha_pass_hash" />
        <input id="loginbutton" type="submit" value="Login" name="submit_login" />
        </form>
</div>
</div>
Kode:
$user_password = sha1($_POST['sha_pass_hash']);
Men jeg vil nok råde dig til at sanitize dine post inputs, så der ikke lige pludselig er sql injection vuln :D
(07-05-2016, 12:43)s0x Skrev: [ -> ]
Kode:
$user_password = sha1($_POST['sha_pass_hash']);
Men jeg vil nok råde dig til at sanitize dine post inputs, så der ikke lige pludselig er sql injection vuln :D

Hmm. Har lige prøvet at smide den ind, men får bare errormsg :S
(07-05-2016, 12:50)Henta24 Skrev: [ -> ]Hmm. Har lige prøvet at smide den ind, men får bare errormsg :S

Er du sikker på at du ikke også skal bruge en salt?
(07-05-2016, 12:52)Doctor Blue Skrev: [ -> ]Er du sikker på at du ikke også skal bruge en salt?

Pas. I databasen er der bare et felt der hedder sha_pass_hash

F.eks er passwordet: 1B5E796ABB4ED9AA505E583CAACCCA2346D971BD som i alm text er ADMINS
(07-05-2016, 12:50)Henta24 Skrev: [ -> ]Hmm. Har lige prøvet at smide den ind, men får bare errormsg :S

Virker fint her: https://snag.gy/erZQ9u.jpg
Lad mig se den error :P
(07-05-2016, 12:56)s0x Skrev: [ -> ]Virker fint her: https://snag.gy/erZQ9u.jpg
Lad mig se den error :P

Det er min egen errormsg variabel. At password eller brugernavn er forkert så det er nok ikke kun sha
(07-05-2016, 13:02)Henta24 Skrev: [ -> ]Det er min egen errormsg variabel. At password eller brugernavn er forkert så det er nok ikke kun sha


Hvis du har nogle af koderne, kan du vel bare reverse en af dem og se hvad den er krypteret med?
(07-05-2016, 13:04)s0x Skrev: [ -> ]Hvis du har nogle af koderne, kan du vel bare reverse en af dem og se hvad den er krypteret med?

Ifølge hashkiller.co.uk er det bare sha 1 :) Men det underlige er at den viser Admins:Admins og ikke bare admin :)
(07-05-2016, 13:12)Henta24 Skrev: [ -> ]Ifølge hashkiller.co.uk er det bare sha 1 :) Men det underlige er at den viser Admins:Admins og ikke bare admin :)

sha1('admin') giver ihvertfald D033E22AE348AEB5660FC2140AEC35850C4DA997... så noget er der galt.
Så jeg vil gætte på at der er et salt involveret, og uden det salt bliver det ikke nemt at gennemskue.

- har prøvet de forskellige kombinationer af Admin:Admin også, ingen giver dit output.
Sider: 1 2 3