Das nutzen von Sicherheitslücken ?

07/07/2015 20:27 -_-BoZz-_-#1
Ich frage einfach mal direkt drauf los.
Wie erkennt man eigentlich Sciherheitslücken sprich wie nutzt man diese eigentlich ?
Ich weiß die Frage könnte jetzt ziemlich komisch klingen, aber es heißt ja auch immer, dass man einfach eine Programmiersprache lernen solle, wie z.b. C++. Nun verstehe ich aber nicht genau, wie einem das die Türen zur Welt des Hackings öffnen soll. Vielleicht kann mir das mal jemand irgendwie erklären.

Mit freundlichem Gruß

-_-BoZz-_-
07/07/2015 21:27 xXKonaXx#2
Du musst verstehen bzw. analysieren, wie das gegenüberliegende System funktioniert und aufgebaut ist. Danach überlegst du dir, wo potenzielle Schwachstellen liegen könnten und überprüfst diese.
Das ist der grobe Anfang, für den du nicht gezwungenermaßen eine Programmiersprache lernen musst. Vorteilhaft ist es aber natürlich.
07/07/2015 21:29 kyazu#3
Quote:
Originally Posted by xXKonaXx View Post
Du musst verstehen bzw. analysieren, wie das gegenüberliegende System funktioniert und aufgebaut ist. Danach überlegst du dir, wo potenzielle Schwachstellen liegen könnten und überprüfst diese.
Das ist der grobe Anfang, für den du nicht gezwungenermaßen eine Programmiersprache lernen musst.
Aber um ein System so gut zu verstehen brauch man gewisse Grundkenntnisse um überhaupt richtig herauszufinden wo potentielle Schwachstellen sind.
07/07/2015 21:36 -_-BoZz-_-#4
Quote:
Originally Posted by xXKonaXx View Post
Du musst verstehen bzw. analysieren, wie das gegenüberliegende System funktioniert und aufgebaut ist. Danach überlegst du dir, wo potenzielle Schwachstellen liegen könnten und überprüfst diese.
Das ist der grobe Anfang, für den du nicht gezwungenermaßen eine Programmiersprache lernen musst. Vorteilhaft ist es aber natürlich.
Gut nun mal angenommen ich könnte eine Programmiersprache (habe tatsächliche ein paar Grundkenntnisse was C++ und PHP angeht), wie sieht sowas denn aus so eine Schwachstelle halt ? Am besten wäre irgendein Beispiel :D
07/07/2015 21:46 tolio#5
eine klassische schwachstelle ist das irgendwelche input daten nicht richtig validiert werden.
resultat könnte sein:
php - (sql) injection [Only registered and activated users can see links. Click Here To Register...]
c++ - buffer overflow [Only registered and activated users can see links. Click Here To Register...]

aber sowas kann man kaum generisch beantworten. wie schon festgestellt muss man halt die systeme kennen.
07/07/2015 21:51 Mostey#6
Quote:
Originally Posted by -_-BoZz-_- View Post
Gut nun mal angenommen ich könnte eine Programmiersprache (habe tatsächliche ein paar Grundkenntnisse was C++ und PHP angeht), wie sieht sowas denn aus so eine Schwachstelle halt ? Am besten wäre irgendein Beispiel :D
Grundkenntnisse einer Programmiersprache reichen da nicht. Da brauchst du schon konkret eine Idee, wie die Struktur bzw. Software aufgebaut ist.


Ein einfaches Beispiel wäre eine Webschnittstelle, nennen wir sie mal WheresApp, bietet eine Chatfunktion mit der man anderen Usern eine Nachricht senden kann. Dabei funktioniert das System so, dass der Client der die Nachricht stellvertretend für den eingeloggten User sendet, die ID des Users angeben muss, der die Nachricht senden möchte. Also eben zusätzlich zur ID des Nutzers, der die Nachricht empfangen soll.

Wer jetzt aufgepasst hat, weiß nun, dass es hier eine potentielle Sicherheitslücke gibt. Wieso? Nun, wir könnten uns hier dazwischen setzen und die Anfrage des Clients so abändern, dass nicht mehr die ID des eingeloggten Users darin steht sondern die ID von ... äh... Obama, der diese App zufälligerweise auch nutzt. Der Nutzer der die Nachricht empfängt, würde also sehen, dass die Nachricht von Obama stammt obwohl du sie eigentlich abgeschickt hast.

Hier liegt es nun am Server. Wenn er feststellen kann (und natürlich auch feststellt) ob die ID die du vorgibst zu haben nicht deiner ID entspricht, wird er deine Anfrage hoffentlich blockieren und dich flaggen.

Lässt er dich durch, hast du eine Sicherheitslücke gefunden. Und ja, das oben beschriebene Verhalten kommt in realen Anwendungen vor, auch wenn es für manche etwas schwach konzipiert scheint, was ich nicht bezweifeln will.
07/07/2015 22:05 warfley#7
Ein Beispiel: Microsoft hat seine Updates via MD5 Hash zertifiziert. Nun seit 2008 ist bekannt dass MD5 nicht sicher ist, also hat Microsoft da eine Sicherheitslücke gehabt. Nun ist es einem Hacker gelungen mithilfe eines bestimmten Algorithmus einen Virus so zu bearbeiten dass dieser die selbe MD5 Prüfsumme wie das Aktuelle Microsoft update hatte, hat diese dann in das Netzwerk von Computern eingeschläust, sich als das neuste Update ausgegeben, und so haben die Computer Autonom einfach einen Virus installiert der als Update getarnt war.

Das ist nur eines von vielen Beispielen die auch tatsächlich real passiert sind.

Für solche Sicherheitslücken zu nutzen benötigt man nicht nur Programmierkentnisse, man braucht wissen über verschiedene Algorithmen (z.B. MD5), Software und wie sie auf was Reagiert, und eine Menge Fantasie.
Um Try und Error kommt man wohl auch nicht rum.

Das Stichwort dazu ist Pentesting
07/07/2015 22:27 hero9910#8
Schau dir evtl mal ein paar Theorie Videos auf Youtube an.
07/07/2015 22:30 -_-BoZz-_-#9
Super danke das ist doch mal was :D
Damit hätte ich auch eigentlich garkeine weiteren Fragen :-)
07/07/2015 23:15 MrDami123#10
Auf [Only registered and activated users can see links. Click Here To Register...] hatte ich eine Sicherheitslücke wo der Usertitel oder Username genauso auf der Seite wiedergegeben wurde wie er vom user auf elitepvpers festgelegt worden ist.
Wenn der User nun einfach einen Javascript Code der etwas bösartiges ausführt als Usertitel gewählt hätte würde der auf meiner Seite ausgeführt werden und die Seite und oder die Besucher schädigen.

Die Vorgehensweise nennt sich Cross-Site-Scripting.