PHP Mysql Login.

  • VB.NET

Es gibt 26 Antworten in diesem Thema. Der letzte Beitrag () ist von [Markus].

    PHP Mysql Login.

    Hallo.



    Mein derzeitiges Problem:

    Ein Visual Basic Mysql Login über PHP.


    Mein Problem, ich möchte mich bei einer vBulletin(Forum Software) Einloggen lassen.


    Das Password ist so aufgebaut:

    md5(md5($plaintext_password).$salt) -> Passwort in der Datenbank



    So nun dann dachte ich mir:(PHP)

    PHP-Quellcode

    1. <?php
    2. $userpw = mysql_real_escape_string($_POST['pw']);
    3. $userid = mysql_real_escape_string($_POST['u']);
    4. $passwortgesamt = md5(md5('$userpw').$salt);
    5. @mysql_connect('localhost', 'blabla', 'blabla') or die (mysql_error());
    6. @mysql_select_db('blabla') or die (sqlerror(mysql_errno(), mysql_error()));
    7. $query = "SELECT * FROM `user` WHERE `username`='$userid' AND `salt`='$salt'AND `password`='$passwortgesamt' ";
    8. $result = mysql_query($query);
    9. $resultcount = mysql_num_rows($result);
    10. if ($resultcount == 0)
    11. {
    12. echo 'Login fehlgeschlagen';
    13. }else {
    14. echo 'Erfolgreich eingeloggt';
    15. }
    16. ?>




    Mein vB Code:

    VB.NET-Quellcode

    1. Imports System.Collections.Specialized, System.Net, System.Text, System.Security.Cryptography
    2. Public Class Login
    3. Dim nv As New NameValueCollection
    4. Dim wc As New WebClient
    5. Private Sub Login_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    6. nv.Clear()
    7. nv.Add("u", Form1.TextBox1.Text)
    8. nv.Add("pw", Form1.TextBox2.Text)
    9. Dim result() As Byte = wc.UploadValues("http://seite.net/LauncherLoginv1.0.php?", "POST", nv)
    10. Dim resultstring As String = System.Text.Encoding.ASCII.GetString(result)
    11. MessageBox.Show(resultstring)
    12. End Sub
    13. End Class




    Nun kommt dann immer Login Feehlgeschlagen!

    Ich bitte um eure Hilfe ?(

    mfg

    Leon

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „StepGamer“ ()

    Innerhalb einer stunde einen push? Deswegen hilft dir auch keiner weiter, im gegenteil!

    Gehört dir das Board wo du dich einloggen möchtest? Ich denke mal ja, denn du greifst ja auf die Datenbank zu.

    Mach mit html 2 textboxen und ein submit button, und fülle die anhand deiner visual basic form aus. (Httprequest)

    PHP-Quellcode

    1. $query = "SELECT * FROM `user` WHERE `username`='". $userid."' AND `salt`='".$salt."'AND `password`='".$passwortgesamt".' ";


    PS: Informier dich über Mysql injection !!!
    PPS: du kannst dir fehler auch über "or die" ausgeben lassen

    Kevin Hombre schrieb:

    Nenn mal die Seite..

    Und vllt. solltest Du das Passwort auch in MD5 umwandeln in Vb.net und erst dann senden..

    joschi240 schrieb:

    PHP-Quellcode

    1. $query = "SELECT * FROM `user` WHERE `username`='". $userid."' AND `salt`='".$salt."'AND `password`='".$passwortgesamt".' ";


    PS: Informier dich über Mysql injection !!!
    PPS: du kannst dir fehler auch über "or die" ausgeben lassen


    Ja Mysql Injection ist mir bekannt ;)

    Ich werde dann direckt in md5 umwandeln.

    Außerdem wenn ich das einsetze passiert gar nichts mehr.

    Eine Ausnahme (erste Chance) des Typs "System.Net.WebException" ist in System.dll aufgetreten.

    joschi240 schrieb:

    Es kann auch garnicht funktionieren.

    Debugg dein php code mal ordentlich (änder Post in get um und lass dir fehler ausgeben)

    Das phpscript was ich hier sehe, wird dir immer ausgeben dass der login fehlgeschlagen ist.

    echo result ?



    Ich verstehe nix...

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „StepGamer“ ()

    nene.... Lass dir mal dein zusammengebasteltes passwort ausgeben.
    wenn du oben das orginal script gepostet hast, wird es nicht so aussehen wie in der Datenbank

    behebe also erstmal den fehler. Ansonsten schau dir die abfrage an. wie oben bereits erwähnt kannst du dir mit "or die" fehler ausgeben lassen.

    PHP-Quellcode

    1. $result = mysql_query($query) or die(mysql_error());
    Die Abfrage scheint Korrekt zu sein.

    Ich schätze es ist irgendwas an meine Theorie falsch:

    md5(md5($plaintext_password).$salt) -> Passwort in der Datenbank

    $passwortgesamt = md5(md5('$userpw').$salt);



    Ehm der Fehler ist bei der MD5 Abfrage.

    Ich habe mir das pw mal Ausgeben lassen.
    Irgendwas stimmt mit dem nicht :/
    Hier der aufbau:

    Datenbank:


    Username
    Password(fertigespw)
    Salt

    Wie man zum fertigen passwort kommt:
    Password = md5(md5($Passwort ohne md5).$salt) -> Passwort in der Datenbank


    Sooo



    Wie kann ich den Salt aus der db hohlen ? mit AND 'salt' = "$salt"



    Ich danke dir schonmal für die große Hilfe :thumbup:

    PHP-Quellcode

    1. <?php
    2. $userpw = mysql_real_escape_string($_POST['pw']);
    3. $userid = mysql_real_escape_string($_POST['u']);
    4. @mysql_connect('localhost', 'blabla', 'blabla') or die (mysql_error());
    5. @mysql_select_db('blabla') or die (sqlerror(mysql_errno(), mysql_error()));
    6. $saltquery = mysql_query("SELECT `salt` FROM `user` WHERE `username`='".$userid."'"); // Neue abfrage des Salt anhand des usernamens
    7. $salt = mysql_fetch_array($saltquery);
    8. $passwortgesamt = md5(md5('$userpw').$salt[0]);
    9. $query = "SELECT * FROM `user` WHERE `username`='". $userid."' AND `salt`='".$salt."'AND `password`='".$passwortgesamt".' ";
    10. $result = mysql_query($query) or die(mysql_error());
    11. $resultcount = mysql_num_rows($result);
    12. if ($resultcount == 0)
    13. {
    14. echo 'Login fehlgeschlagen';
    15. }else {
    16. echo 'Erfolgreich eingeloggt';
    17. }
    18. ?>


    Sollte Theoretisch funktionieren. habs nur schnell zusammmengebastelt ohne test.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „joschi240“ ()

    Ehm Leider nicht :/
    Wenn ich jetzt das php script öffne kommt:

    Serverfehler
    Beim Abrufen von blabla/LauncherLoginv1.0.php ist auf der Website ein Fehler aufgetreten. Möglicherweise wird sie gerade gewartet oder ist falsch konfiguriert.
    Vorschläge:
    Laden Sie diese Webseite später erneut.
    HTTP-Fehler 500 (Internal Server Error): Beim Versuch des Servers, die Anforderung zu verarbeiten, ist eine unerwartWaete Bedingung aufgetreten.


    Warum 2x Passwortgesamt ?
    Entweder du hast den Server falsch konfiguriert oder dein ranziger Hoster kriegt es nicht hin. Das Skript dürfte eher nicht die Ursache sein.
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    Das ist schade :/
    Aber kann man das irgendwie umschreiben, dass es Funktioniert ? oder gibt es noch eine andere Methode ?

    Außerdem läuft ein vBulletin Board darauf. D.h. Am Hoster kann es eigendlich nicht liegen nach meiner Meinung.


    Nein Ein Free Hoster ist es auch nicht.
    was funktioniert denn nicht?!

    läuft das php-script nun? hast du es manuell per get getestet? sind die Mysql abfragen kontrolliert ? kommt bei richtigen daten die Meldung dass der login erfolgreich war?

    Hast du dir in dein vbteil mal ausgeben lassen was du als antwort vom server zurückbekommst?

    Das sind alles sachen, auf die du selber kommen solltest und eigentlich sollte man es erwarten können dass du als "hilfesuchender" ohne zu fragen genau diese sachen sagen kannst.
    Mir is es egal ob dein script läuft oder nicht. nur so zur info ;)