Zum Inhalt springen

Webanwendung richtig schützen


Hahne

Empfohlene Beiträge

Hallo,

ich habe da ein kleines Problem und ich denke ihr könntet mir da behilflich sein.

Und zwar meinte ein Kollege zu mir, dass er eine von mir Programmierte Internetseite in ASP.NET C# ohne Probleme hacken könnte. Dieses hatten wir dann gestern auch einmal ausprobiert. Das blöde war nur, dass ich nicht zuschauen konnte wie er es gemacht hat.

Nein, nein ich möchte jetzt nicht von euch erfahren wie er es gemacht haben könnte sondern ich möchte lediglich mit euch Diskutieren bzw. eure Meinungen dazu hören ob es möglich sei. Denn meiner Meinung nach hat er es nicht gehackt sondern vermutlich irgendwie auf den Proxyserver mein Passwort nachgeschaut was ich eingegeben habe oder hat andere Tricks angewendet.

Nun ja erst einmal zu meinem Code. Ich habe eine Login.aspx Seite in der ich ein Logincontrol habe und in meiner Web.Config ist als Anmeldung Forms angegeben.

Login.aspx.cs:


protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)

    {

e.Authenticated = Auth.UserAuth(Login1.UserName, Auth.CalculateMD5Hash(Login1.Password));

    }

Hier rufe ich lediglich meine Klasse UserAuth auf die prüft ob es den User gibt und das Passwort richtig ist. Hier ist es jedoch so, dass ich das Passwort vorher in MD5 umrechnen lasse. Meine UserAuth Klasse sieht wie folgt aus: UserAuth.cs:

public static bool UserAuth(string usrName, string usrPassword)

    {


SqlConnection myConnect = new SqlConnection(ConfigurationManager.ConnectionStrings["DBstring"].ConnectionString);


string SqlStr = "SELECT username FROM users WHERE username=@username AND password=@password";


SqlCommand myCmd = new SqlCommand(SqlStr, myConnect);


myCmd.Parameters.AddWithValue("@username", usrName);

myCmd.Parameters.AddWithValue("@password", usrPassword);


myConnect.Open();


string Username = (string)myCmd.ExecuteScalar();


myConnect.Close();


if (!string.IsNullOrEmpty(Username))

{

return true;

}

else

{

return false;

}


}

So, jetzt meinte er, dass er mein Passwort unverschlüsselt sehen konnte, weil der MD5 Hash des Passwortes zu spät berechnet wird. Das Problem ist, dass er aber keinen Sniffer auf meinen Rechner hatte und er mein Passwort angeblich über sein PC gehackt haben soll. Ich habe mich an seinem Rechner aber noch nie angemeldet bzw. saß noch nie daran.

Ausserdem kam es mir etwas komisch vor, dass er in mein Büro kam und sagte, dass ich mich doch einmal bitte kurz in mein Administratorbereich anmelden sollte. Was ich dann auch gemacht habe. Kurze Zeit später kam das Passwort in klartext in mein Emailpostfach geflattert.

Ich denke aber mal, dass er es nicht gehackt hat bzw. aus meiner Datenbank hat sondern das er es ggf. im Log oder so des Proxyservers gesehen hat.

Was denkt ihr?

Bearbeitet von Hahne
Link zu diesem Kommentar
Auf anderen Seiten teilen

Gibt viele Möglichekiten wie er das gemacht haben könnte und wenn ers dir nicht verraten will dann wird das nichts spektakuläres sein sondern irgend was dummes wie du schon oben mit dem Proxy vermutet hast.

Ich würde nicht sagen das SQl Injection auf jeden Fall ausgeschlossen ist, aber es ist zumindest sehr sehr unwahrscheinlich. Aber trotzdem könnte ja Asp.Net da auch eine Lücke oder einen Fehler haben.

Eine gute Methode da ist übrigens auch noch nach dem Auslesen des Benutzers nochmal das übergebene Passwort mit dem Passwort des ausgelesen Benutzers zu vergleichen um ganz sicher zu gehen das nicht doch irgendwie ein anderer gelesen wurde.

Aber wie gesagt ich denke auch nicht das es sowas war.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Eine gute Methode da ist übrigens auch noch nach dem Auslesen des Benutzers nochmal das übergebene Passwort mit dem Passwort des ausgelesen Benutzers zu vergleichen um ganz sicher zu gehen das nicht doch irgendwie ein anderer gelesen wurde.

Danke, hatte ich bisher nie drin, kommt ab jetzt rein... Gute Doppelprüfung :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

hm das prob kann aber eventuel an einer späteren stelle entstehen wo oder wie händelst du bereits eingelogte benutzer? den wenn er siene eigenen cokkies manipuliert oder ähnliches dann geht das eventuel recht fix ich mach daher immer eine prüfung über sessionid, ip-adresse, benutzername, passwort und zeitstempel mit einem vom mir definiertem timeout

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich verwende die von ASP.NET zur Verfügung gestellten Controls. Z.B. das LoginView Control, LoginName Control oder LoginStatus Control. Die machen das ja alles automatisch für mich. Das ist ja das tolle.

Und auch wenn er die Cookies ausliest wie kommt er denn bitte an mein Cookie mit meinem Passwort? Wie gesagt er war nicht an meinem Rechner und an seinem Computer habe ich noch NIE die Seite aufgerufen geschweige denn mein Passwort eingegeben. Sprich es kann bei ihm aufn Rechner kein Cookie mit meinem Passwort vorhanden sein.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...