• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

MyBB Passwort, Username als Login

T4k3C4r3

Mitglied
Mahlzeit!

Ich bin gerade am rätseln, wie ich ein beliebiges Passwort so verschlüsseln kann, damit es dem von MyBB in der Tabelle mybb_users dem Passwort genau übereinstimmt.

Ich habe auch schon berreits meinen Freund Google gefragt, der hat mir Folgende Antwort gegeben:

PHP:
md5(md5($salt).md5($password));

Doch wie muss ich das anwenden ?

Mein bisheriger Php Script:

PHP:
<?php

if(isset($_GET['login'])) { 

$username = $_POST['username'];
$password = $_POST['password'];

if ($username && $password)
{
    $connect = mysql_connect("localhost", "root", "") or die ("Couldn't connect!");
    mysql_select_db("DB") or die ("Couldn't find DB!");
    
    $query = mysql_query("SELECT * FROM mybb_users WHERE username ='$username'");
    
    $numrows = mysql_num_rows($query);
    
    if ($numrows != 0)
    {
        //code to login
        
        while ($row = mysql_fetch_assoc($query))
        {
            $dbusername = $row['username'];
            $dbpassword = $row['password'];
            
        }
        
        //check to see if they match!
        
        $password = md5($password); //HIER SOLLT DIE VERSCHLÜSSELUNG SATTFINDEN
        
        if ($username == $dbusername && $password == $dbpassword)
        {
            echo "Willkommen $username !";
            
            $_SESSION['username'] = $username;
        }
        else
        {
            echo "Incorrect password!";
        }
        
        
    }
    else
    {
        die ("That user doesen't exist!");
    }
}
else
{
    die ("Please enter a username and a Password!");
}
}
?>

Und ist der Script für einen Login sicher genug?

Mein Ziel ist: Das Passwort was der User beim Login eingibt, soll dem Passwort in der MyBB_users übereinstimmen


Vielen Dank Schonmal!

Mfg T4k3C4r3
 
Und ist der Script für einen Login sicher genug?

Nein, das Script ist offen wie ein Scheunentor für jedermann.

PHP:
if(isset($_GET['login'])) { 

$username = $_POST['username'];
$password = $_POST['password'];

if ($username && $password)
{

Du solltest Post verwenden statt Get.
Das Passwort und der Username sollten eine festgelegte Mindestlänge haben und eine Maximallänge bei Eingabe.
Du solltest nichts durchlassen das kein Alphanumerisches Zeichen ist und oder eine Zahl.

Du solltest die Wiederholvorgänge der Eingabeversuche künstlich ausbremsen, ich empfehlen 500mSek bis 1 Sekunde.

Du sollltest das Passwort und den Usernamen verschlüsseln, PHP bietet da eingebaute Funktionen an.
Du solltest beim Loginformular ein verstecktes Feld gegen Bots einbauen.

Du solltest das hier:
PHP:
$connect = mysql_connect("localhost", "root", "") or die ("Couldn't connect!");
    mysql_select_db("DB") or die ("Couldn't find DB!");

auslagern und dann per include darauf zugreifen. Am besten unterhalb des Root, so dass niemand aus versehen an deinen Datenbankzugang kommt oder in ein CGI-Bin Verzeichnis(Apache-Server).

Es gibt sicher noch mehr, aber das ist erst mal das was mir spontan ein- und auffiel.
 
Oh.. Das ist mir jetzt echt peinlich!

Aber Vielen Dank für Ihre Antwort :)

Naja ich werd mal alle Ihre Vorschläge versuchen in die Tat umzusetzen.

Das mir dem $_GET .... ich weis nicht was ich mir dabei gedacht habe :(

Aber Danke für den Hinweis!

Kann mir noch jemand mit der MyBB Verschlüsselung weiterhelfen? Ich verzweifle dabei...
 
Moin Moin

Schau dir mal die MyBB-Benutzertabelle an. Die ersten 4 Felder sind da wichtig:

Code:
uid | username | password | salt

Daran kannst du schon sehen, dass du dir aller Wahrscheinlichkeit nach anhand des eingegbenen Benutzernames den Salt auslesen musst. Der Rest ist dann Verschlüsselungssache. Es folgt Dummy-code:

PHP:
<?php
    $passwort = md5(md5($salt_aus_mybb_datenbank).md5($eingegebenes_passwort));
?>

Zuletzt machst du noch die Gegenprüfung ob dass nun verschlüsselte Passwort mit dem Passwort in der MyBB-Benutzertabelle übereinstimmt. Ich hoffe ich konnte weiterhelfen :)

Grüße

NewLord
 
Moin Moin

Schau dir mal die MyBB-Benutzertabelle an. Die ersten 4 Felder sind da wichtig:

Code:
uid | username | password | salt

Daran kannst du schon sehen, dass du dir aller Wahrscheinlichkeit nach anhand des eingegbenen Benutzernames den Salt auslesen musst. Der Rest ist dann Verschlüsselungssache. Es folgt Dummy-code:

PHP:
<?php
    $passwort = md5(md5($salt_aus_mybb_datenbank).md5($eingegebenes_passwort));
?>

Zuletzt machst du noch die Gegenprüfung ob dass nun verschlüsselte Passwort mit dem Passwort in der MyBB-Benutzertabelle übereinstimmt. Ich hoffe ich konnte weiterhelfen :)

Grüße

NewLord

Hey Danke hat geklappt! Vielen Dank!

Diese hoch wertige Verschlüsselung wars wohl :)

Mfg
 
Es mag kleinlich sein, aber ich finde die Unterscheidung wichtig: md5 ist keine Verschlüsselung, sondern ein Hashing-Verfahren. Es ist nicht umkehrbar („entschlüsselbar“).
 
Zurück
Oben