
Strukturierte Lernnotizen zu den Grundlagen des Web-Hackings, häufigen Schwachstellen, Penetrationstest-Techniken und defensiver Sicherheit, mit kuratierten Tool- und Ressourcenlisten.
Im Lernprozess der Websicherheit habe ich tief empfunden, dass das relevante Wissen riesig und ein großer Teil davon relativ verstreut ist. Ohne eine klare Orientierung als Referenz kann dies unnötige Hürden beim Lernen mit sich bringen. Nachdem ich ein oberflächliches Verständnis der Websicherheit erlangt habe, habe ich daher versucht, einige Kenntnisse und Gedanken zu ordnen und festzuhalten, was zu diesen Notizen geführt hat. Ich hoffe, dass sie Sicherheitsbegeisterten, die gerade einsteigen, eine gewisse Hilfe bieten können.
Bevor wir beginnen, muss eine Frage geklärt sein: Was ist Websicherheit? Eine recht direkte Definition ist, dass Websicherheit eine Reihe von Sicherheitsinhalten umfasst, die Websites, Webanwendungen und Webdienste einschließen. Oder anders gesagt, Websicherheit beschäftigt sich mit der Sicherheit der Anwendungsschicht, insbesondere mit sicherheitsrelevanten Aspekten, die mit dem Netzwerk zusammenhängen. Die Inhalte, die man für Websicherheit lernen muss, umfassen hauptsächlich die Netzwerkprotokolle selbst, die Eigenschaften von Webanwendungen und die entsprechenden Sicherheitsprobleme sowie die Nutzung verschiedener Werkzeuge. Tatsächlich sind diese Bereiche recht fragmentiert und komplex. Ich versuche, die relevanten Inhalte mit der folgenden Logik zu zerlegen und neu zu organisieren.
Aus der Geschichte lernen, um Aufstieg und Fall zu verstehen – als Erstes sollte man die Entwicklungsgeschichte des Bereichs kennen. Um besser zu verstehen, warum die Websicherheit heute so ist, wie sie ist, und in welche Richtung sich die jeweiligen Forschungen entwickeln, ist es notwendig, die Entwicklung und Evolution der Webanwendungstechnologie sowie der Netzwerkangriffs- und -verteidigungstechniken zu verstehen. Dies ist der erste Teil der Notizen, der sich um die Entwicklung und Evolution der Webtechnologie und die grundlegenden Kenntnisse des Sicherheitsbereichs dreht.
Nach einem allgemeinen Verständnis der Geschichte der Websicherheit kann man mit dem Erlernen der Grundlagen von Computernetzwerken beginnen. Dies ist der zweite Teil des Dokuments, der einige grundlegende Kenntnisse über Computernetzwerke vorstellt. Angesichts der vielen technischen Zweige und der schnellen Entwicklung von Netzwerkdatenbanken, Webservern usw. beschränkt sich dieses Dokument auf die Einführung von Netzwerkprotokollen und überspringt die Netzwerkanwendungen. Tatsächlich sollte man sich mit verschiedenen Programmiersprachen, Webanwendungsframeworks, Netzwerkdiensten und Betriebssystemeigenschaften auskennen.
Mit einer gewissen Grundlage kann man sich auf detailliertere Angriffs- und Verteidigungsinhalte konzentrieren, wie z. B. die Untersuchung eines bestimmten Schwachstellentyps, die Eigenschaften einer bestimmten Sprache oder Anwendung und die damit verbundenen Sicherheitsprobleme. Dies ist der dritte Teil des Dokuments. Dieser Teil folgt der üblichen Reihenfolge von Penetrationstests und behandelt kurz die Informationssammlung, häufige Webschwachstellen, gängige Sprachen und Frameworks sowie Techniken für interne Netzwerke. Normalerweise stößt man auf diese Inhalte, wenn man mit Penetrationstests beginnt.
Gleichzeitig wird die Cloud nach und nach zu einem wichtigen Teil der Webwelt. Ob man nun öffentliche Clouds für leichte Dienste oder private Clouds nutzt – Container und ähnliche Technologien werden immer wichtiger.
Der vierte Teil kehrt zur Verteidigungsperspektive zurück und beschreibt den Aufbau von Sicherheitsteams, Bedrohungsinformationen und Risikomanagement usw. Er geht auch auf detailliertere technische Inhalte wie Honeypots und Rückverfolgung ein.
Schließlich folgen konkretere Anwendungen, hauptsächlich die Einführung und Nutzung von Werkzeugen. In diesem Teil des Dokuments werden einige empfohlene Werkzeuge und Ressourcenlisten vorgestellt, und es werden auch einige Inhalte archiviert, die vorläufig nicht kategorisiert wurden.
Das ist die gesamte Organisation des Inhalts. Tatsächlich kann man beim Lernen auch von einem bestimmten Punkt aus einsteigen und sich spiralförmig weiterbilden. Diese Notizen können sowohl als Ganzes als auch als Handbuch dienen.
Mein Wissen ist begrenzt und meine Energie beschränkt; bei der Zusammenstellung der Notizen können zwangsläufig Fehler oder unvollständige Teile auftreten, die nach und nach korrigiert und ergänzt werden. Falls Lücken oder Fehler vorhanden sind, sind Leser herzlich eingeladen, diese per Issue oder PR zu kritisieren und zu korrigieren. Ich bin sehr dankbar dafür.
Bei der Erstellung der Notizen habe ich viele Materialien referenziert und zitiert. Die entsprechenden Links sind am Ende des Dokuments angegeben. Vielen Dank an die Autoren der Artikel für ihre Beiträge. Die Online-Version der Notizen kann hier eingesehen werden.
git clone https://github.com/LyleMi/Learn-Web-Hacking.git
cd Learn-Web-Hacking
pip install sphinx sphinx-rtd-theme
make html
Wenn es irgendwelche Fragen, Meinungen oder Vorschläge gibt, sind Issues oder PRs willkommen. Ich bin sehr dankbar dafür.
Vielen Dank an alle Mitwirkenden.
Das Projekt wird unter der CC0 1.0-Lizenz veröffentlicht. Der vollständige Text kann hier eingesehen werden.
Der Inhalt der Notizen wurde aus Open-Source-Informationen gesammelt und zusammengestellt. Die genannten Techniken dienen nur für legale Szenarien wie Lernen und autorisierte Tests. Aus Gründen der öffentlichen Sicherheit wurden einige Inhalte nicht aufgenommen. Bitte halten Sie sich an das "Cybersicherheitsgesetz der Volksrepublik China", das "Urheberrechtsgesetz für Computersoftware der Volksrepublik China" und andere gesetzliche Bestimmungen und führen Sie keine Tests gegen nicht autorisierte Ziele durch.