Manuel Ziegler mit seinem Buch "Web Hacking"Einige Tipps für das Gewinnspiel

Insgesamt 26 Personen ist es bislang gelungen, zu zeigen dass sie das Zeug zum Hacker haben und an unserem Gewinnspiel (bereits abgeschlossen), das im letzten Beitrag Web Hacking – mit Manuel Ziegler im Interview – inklusive Hacking-Gewinnspielnterview vorgestellt wurde, teilzunehmen. Die Teilnehmer haben das Gewinnspiel in ganz unterschiedlicher Zeit gelöst. Während der schnellste Teilnehmer alle Aufgaben in weniger als vier Minuten löste, hatten zahlreiche Teilnehmer auch die Disziplin, sich bis zu vier Stunden mit der Lösung des Gewinnspiels zu beschäftigen. Allerdings haben auch etwa einhundert Personen vorzeitig aufgegeben. Für diese und alle zukünftigen Teilnehmer möchte ich hier einige heiße Tipps präsentieren, damit auch Sie die Chance haben, das Gewinnspiel erfolgreich abzuschließen.

Besonders die erste Aufgabe, das Umgehen des Logins zum Administrator-Bereich des Chats bereitete vielen Kandidaten Probleme. Die Schwierigkeit dabei liegt im zweiten Teilschritt, also der Umgehung des Logins. Das gelang lediglich 27 Personen. Der Rest gab an diesem Punkt entweder auf, oder entschied sich dazu, den Schritt zu überspringen – übrigens ist auch das Überspringen eines Schrittes eine gültige Lösung, allerdings nur einmal.

Doch eigentlich ist das Überspringen des zweiten Schrittes nicht notwendig, schließlich ist auch er ganz einfach zu lösen. Wenn Sie auf das Rote Fragezeichen klicken, werden Ihnen nicht nur signifikante Stellen im Quelltext der Seite gelb hervorgehoben, sondern es öffnet sich auch ein Fenster in dem am Beispiel einer ähnlichen Seite erläutert wird, wie das Exploit auf der zu knackenden Seite funktioniert. Ich will Ihnen das hier noch einmal ausführlich beschreiben.
Wenn Sie eine Webseite in PHP programmieren, werden Sie in der Regel sogenannte Variablen nutzen, um Ergebnisse von Berechnungen oder Benutzereingaben für die spätere Verwendung zu speichern. Wir wollen das folgende PHP-Skript betrachten und an diesem Beispiel das entsprechende Exploit erklären:

1. <?php
2. if($passwort == ‚PASSWORT‘)
3. $login = true;
4.
5. if($login)
6. //Ausgabe der Seite (Zugriff gewährt)
7. ?>

Zusätzlich gehen wir davon aus, dass die Option register_globals aktiviert ist, das bedeutet, dass man als Nutzer durch die Übergabe von Parametern in der URL Variablen ganz zu Beginn des Skripts mit Werten belegen kann. Variablen kann man einer URL übergeben, indem man ihr ein Fragezeichen, gefolgt von Attribut-Wertepaaren anhängt, die jeweils durch ein kaufmännisches Und (&) voneinander getrennt sind. Außerdem steht zwischen einem Attribut und seinem Wert jeweils ein Gleichheitszeichen.
Angenommen unser PHP-Skript wäre unter der Adresse http://web-chat-abcdt.de/admin/index.php zu finden. Die Adresse http://web-chat-abcdt.de/admin/index.php?login=true würde nun vereinfacht ausgedrückt zu folgendem Quelltext führen:

1. <?php
2. $login = true;
3. if($passwort == ‚PASSWORT‘)
4. $login = true;
5.
6. if($login)
7. //Ausgabe der Seite (Zugriff gewährt)
8. ?>

Das entspricht nicht ganz der Realität, aber wenn Ihnen das aufgefallen ist, benötigen Sie vermutlich auch diese Hilfestellung nicht. Zur Erläuterung soll uns hier diese Annahme genügen. In Zeile zwei des Quelltextes sehen Sie, dass nun eine Variable $login angelegt wurde und ihr der Wert true zugewiesen wurde.((1)) Das hat weitreichende Folgen für die Ausführung des Quelltextes. Diese kommen in Zeile 6 zu tragen. Nur wenn die Variable $login dort den Wert true hat, wird die Seite ausgegeben und der Besucher erlangt Zugriff auf die entsprechenden Funktionen. Das ist aber im Falle des Aufrufs mit der URL http://web-chat-abcdt.de/admin/index.php?login=true immer der Fall, nicht
nur dann, wenn das Passwort, das der Nutzer als Wert des Attributs passwort übergeben hat, richtig ist. Damit haben Sie den Login der Seite erfolgreich umgangen und ich habe Ihnen mehr oder weniger zufällig die richtige Antwort für den zweiten Schritt des Gewinnspiels gegeben.

Neben diesem Tipp, will ich Sie auch noch auf ein nettes Hilfsmittel hinweisen, nämlich ein Programm mit dem Sie sich das manuelle Entschlüsseln der Caesar-Verschlüsselung im vierten Schritt ersparen können. Bislang wurde dieses Hilfsmittel nur von rund 14 Personen benutzt und auch wenn es den anderen trotzdem gelang, die Verschlüsselung zu knacken, so sparen Sie damit einige Zeit. Sie müssen lediglich auf das zweite rote Fragezeichen klicken, um dieses Hilfsprogramm zu starten. Anschließend können Sie den Geheimtext dort hinein kopieren und mit dem von Ihnen ermittelten Schlüssel dechiffrieren. Letzteren müssen Sie natürlich selbst ermitteln, einen Wink mit dem Zaunpfahl erhalten Sie jedoch durch die Markierungen, die mit einem Klick auf das erste Fragezeichen gesetzt werden.

Ich hoffe sehr, dass ich Ihnen mit meinen Hinweisen weiterhelfen konnte und wünsche Ihnen
weiterhin viel Spaß bei der Teilnahme und viel Erfolg bei der Verlosung der Gewinne!

Was lernen Sie im Buch?

Vielleicht fragen Sie sich nun, was Sie eigentlich im Buch Web Hacking erwartet. Werden die dort vorgestellten Techniken ähnlich der Aufgaben des Gewinnspiels ausfallen, oder werden Sie etwas völlig anderes lernen? Natürlich sind die im Buch vorgestellten Angriffstechniken um einiges komplexer als dieses Gewinnspiel, allerdings werden auch im Gewinnspiel die Grundideen vieler Angriffstechniken aufgegriffen. Der zweite Schritt des Gewinnspiels beispielsweise verdeutlicht einige Konzepte aus Kapitel 2 des
Buchs. Darin geht es um grundlegende Angriffstechniken und vor allem um den kreativen Schaffensprozess eines Hackers, der weit mehr als 90% seiner Zeit darauf verwendet, alternative Zugangswege zu einem System zu finden. Die restliche Zeit verbringt ein Hacker damit, Passwörter und Verschlüsselungen zu knacken. Diese Tätigkeit lernen Sie anhand einfacher Beispiele im dritten und vierten Schritt des Gewinnspiels kennen. Im Buch erfahren Sie bereits in Kapitel 3 alles Wissenswerte über Brute-Force-Angriffe, also jene Angriffe mit denen in der Regel Passwörter geknackt werden müssen und die auch häufig Anwendung finden, wenn es eine Verschlüsselung zu knacken gilt. Sie werden dabei nicht nur mit dem unfassbar großen Aufwand eines Brute-Force-Angriffes konfrontiert, sondern lernen vor allem, wie dieser Aufwand in der Praxis so weit reduziert werden kann, dass ein Erfolg möglich ist.
Um das zu vermeiden ist es erforderlich, Authentifikationssysteme nicht nur mit einem theoretischen Schutz, sondern auch mit einem in der Praxis effizienten Schutz zu versehen. Was Sie dabei beachten müssen, das erfahren Sie in Kapitel 4. Die folgenden Kapitel beschäftigen sich mit weit verbreiteten, fortgeschrittenen Angriffstechniken, darunter SQL-Injection, Cross-Site-Scripting, DoS-Attacken sowie Phishing und den Möglichkeiten, die Sie als Betreiber einer Seite jeweils haben, um sich gegen derartige Angriffe zur Wehr zu setzen und Ihre Nutzer zu schützen. Auch das vor allem vom legendären Hacker Kevin Mitnick popularisierte SocialEngineering wird im neunten Kapitel erläutert.

Das zehnte Kapitel schließlich beschäftigt sich mit fortgeschrittenen Themen wie kryptografischen Verfahren, Low-Level-Angriffstechniken und den Methoden von Geheimdiensten. Dieses Kapitel gibt Ihnen einen Eindruck davon, wie unsicher die heutige Computerwelt eigentlich ist und auf welche Prinzipien wir uns bei vermeintlich sicherer Kommunikation stützen.

[[1]] Variablen werden in PHP mit einem Dollarzeichen gekennzeichnet.