Lernen Sie CTF von Grund auf

Vorwort


Einführung in CTF


Chinesisch wird im Allgemeinen als Capture-the-Flag-Wettbewerb übersetzt, was sich auf eine Form des technischen Wettbewerbs zwischen Netzwerksicherheitstechnikern im Bereich der Netzwerksicherheit bezieht.

Rennmodus

Problemlösungsmodus:

Im CTF-Wettbewerbssystem im Problemlösungsmodus können teilnehmende Teams über das Internet oder ein Netzwerk vor Ort teilnehmen. Dieser Modus des CTF-Wettbewerbs ähnelt dem ACM-Programmierwettbewerb und der Informatikolympiade. Die Rangfolge basiert auf der Punktzahl und der Zeit für Lösung von Herausforderungen im Bereich der Netzwerksicherheitstechnologie. Wird normalerweise für Online-Testversionen verwendet. Zu den Themen gehören hauptsächlich Reverse Engineering, Schwachstellen-Mining und -Nutzung, Web-Penetration, Kryptographie, Forensik, Steganographie, sichere Programmierung und andere Kategorien.


Offensiv- und Defensivmodus:

Im CTF-Wettbewerbssystem im Offensiv- und Defensivmodus greifen und verteidigen die teilnehmenden Teams einander im Cyberspace, graben Netzwerkdienstlücken aus und greifen gegnerische Dienste an, um Punkte zu erzielen, und schließen ihre eigenen Dienstlücken zur Verteidigung, um Punktverluste zu vermeiden. Das CTF-Wettbewerbssystem im Offensiv- und Defensivmodus kann die Spielsituation in Echtzeit anhand der Punktzahl widerspiegeln, und schließlich wird der Gewinner direkt anhand der Punktzahl ermittelt. Es handelt sich um ein äußerst wettbewerbsorientiertes, äußerst dekoratives und hochtransparentes Netzwerksicherheits-Wettbewerbssystem. Bei diesem Wettbewerbssystem werden nicht nur die Intelligenz und Fähigkeiten der teilnehmenden Spieler verglichen, sondern auch die körperliche Stärke (da der Wettbewerb normalerweise 48 Stunden oder länger dauert), aber auch die Arbeitsteilung und Zusammenarbeit zwischen den Teams.


Mischmodus:

Das CTF-Wettbewerbssystem kombiniert den Problemlösungsmodus sowie den Offensiv- und Defensivmodus. Beispielsweise können teilnehmende Teams durch das Lösen von Problemen einige Anfangspunkte erzielen und dann durch offensive und defensive Konfrontationen den Punktestand in einem Nullsummenspiel erhöhen oder verringern . Abschließend wird der Gewinner anhand der Punktzahl ermittelt. Ein typischer Vertreter des Mixed-Mode-CTF-Wettbewerbssystems ist der iCTF International CTF Competition.

Qualifikationsrunde

Es handelt sich allesamt um Online-Wettbewerbe, und bei den Wettbewerbsformaten handelt es sich fast ausschließlich um Problemlösungsmodi. Betreten Sie die offizielle Website und nachdem Sie sich mit Ihrem Konto und Passwort angemeldet haben, werden Sie zu einer Seite weitergeleitet, auf der die Fragen nach Kategorien klassifiziert sind (die Kategorien werden später besprochen). Nach dem Klicken wird Ihnen ein Link zur bereitgestellt Frage, Frageninformationen, Fragentipps und eine Flagge (Antwort) zum Einsenden. Nach dem Absenden erhalten Sie Fraction. Unter ihnen erhalten das Erstblut, das Zweitblut und das Drittblut eine höhere Punktzahl, und die Teams, die die Frage später beantworten, erhalten die gleiche Punktzahl. Je weniger Teams die Frage beantworten, desto mehr Punkte erhalten sie, und dann werden sie gewertet Anhand der Ergebnisse wird die Mannschaft ermittelt, die ins Finale kommt.
Beispiel: Bei einer Check-in-Frage beträgt die anfängliche Punktzahl 500. Wenn ein Team die richtige Flagge einreicht, sinkt die Punktzahl auf 470/450. Je größer die Anzahl der Personen, desto stärker sinkt die Punktzahl. Und die Punktzahl für das erste Blut, das zweite Blut und das dritte Blut wird höher sein als die der richtigen Antworten in den Folgefragen.

Finale

Fast alle Offline-Wettbewerbe werden im gemischten Modus ausgetragen, da die Fragen im Offensiv- und Defensivmodus anfällig für Probleme wie „leicht zu verteidigen“ und „schwer anzugreifen“ sind und Probleme, die im Geschwindigkeitsbereich nicht erlernt werden können. Aus diesem Grund sind die meisten Da die Endrunden umgekehrt ausgerichtet sind, kann es leicht zu einem rückläufigen Wettbewerb werden. Was machen Web-Spieler? Lasst uns Tee trinken und Gelegenheitsarbeiten erledigen!


2. Themenklassifizierung


Die Themen lassen sich im Allgemeinen in 6 Kategorien einteilen:

1. Web (Netzwerksicherheit)

Web ist einer der Hauptfragetypen im CTF-Wettbewerb. Die Fragen betreffen viele häufige WEB-Schwachstellen, wie XSS, Dateieinbindung, Codeausführung, Upload-Schwachstellen und SQL-Injection. Es gibt auch einige einfache Untersuchungen zu Netzwerkgrundlagen wie Rückpaketen, TCP-IP, Paketinhalt und -struktur. Man kann sagen, dass die Themenumgebung näher an der realen Umgebung liegt.

Erforderliche Wissenspunkte: PHP, Python, SQL (hauptsächlich MySQL), TCP-IP, Linux-Befehle, HTML, Javascript usw.


2. MISC (verschiedene Sicherheit)

MISC ist ein groß angelegter CTF-Wettbewerb. Die Fragen sind sehr schwierig. Es handelt sich um einen Typ, der die Punktzahl erhöhen kann, bei kleinen Wettbewerben und Fragenbanken jedoch nicht schwierig ist. Die Themen umfassen Steganographie, Verkehrsanalyse, elektronische Forensik, Suche nach menschlichem Fleisch, Datenanalyse, Big-Data-Statistik usw., decken ein breites Themenspektrum ab und untersuchen hauptsächlich die verschiedenen grundlegenden umfassenden Kenntnisse der Teilnehmer.

Erforderliche Wissenspunkte: Vertraut mit der Verwendung vieler Steganographie-Tools, Verkehrskontrolltools, Verständnis der Codierung usw.


3.Krypto (Kryptographie)

Es besteht hauptsächlich aus zwei Teilen: klassischer Kryptographie und moderner Kryptographie. Die klassische Kryptographie ist interessant und vielfältig, während die moderne Kryptographie eine hohe Sicherheit aufweist und ein besseres Verständnis der Algorithmen erfordert.

Erforderliche Wissenspunkte: Matrix, Zahlentheorie, klassische Kryptographie, Algorithmus usw.


4.Reverse (rückwärts)

Das Thema umfasst Software-Reverse-Engineering, Cracking-Technologie usw. und erfordert eine solide Grundlage in Disassemblierung und Dekompilierung. Es untersucht hauptsächlich die Fähigkeit der Teilnehmer zur umgekehrten Analyse.

Erforderliche Wissenspunkte: Assemblersprache, Ver- und Entschlüsselung, gängige Dekompilierungstools.


5. Mobil (mobile Sicherheit) 

Es werden hauptsächlich die gängigen Tools und wichtigsten Fragetypen im Android-Reverse-Engineering vorgestellt. Android-Reverse-Engineering erfordert häufig ein gewisses Maß an Kenntnissen in der Android-Entwicklung. iOS-Reverse-Engineering-Fragen tauchen bei CTF-Wettbewerben selten auf, daher werde ich sie nicht zu oft vorstellen.


6. PWN (binäre Sicherheit)

Im Hacker-Slang bedeutet PWN Durchbrechen und Erlangen der Erlaubnis. Im CTF-Wettbewerb stellt es Überlaufprobleme dar. Häufige Arten von Überlaufschwachstellen sind Stapelüberlauf und Heapüberlauf. Dabei wird vor allem die Fähigkeit von Parameterakteuren untersucht, Lücken auszunutzen.

Erforderliche Wissenspunkte: C, OD+IDA, Datenstruktur, Betriebssystem.


7. (Blockchain)

-Blockchain-Probleme sind in letzter Zeit bei vielen CTF-Wettbewerben aufgetreten, und Blockchain-Anwendungen werden immer beliebter, und Blockchain wird in Zukunft ein Schwerpunkt sein. Da ich noch keinen Kontakt dazu hatte, werde ich hier nicht näher darauf eingehen.

3. Wie man anfängt

Der Einstieg stellt für uns Anfänger eine große Hürde dar und viele Menschen wissen nicht, wie sie anfangen sollen.

Persönliche Schritte zum Einstieg

1. Bestimmen Sie die Richtung

Im Allgemeinen in zwei Richtungen unterteilt

Richtung A: PWN+Reverse+Crypto zufällig abgeglichen
Richtung B: Web+Misc kombiniert mit
Misc, das kann jeder

Einführungswissen:
Was Sie lernen müssen: Windows-Grundlage, Linux-Grundlage, Computerkompositionsprinzip, Betriebssystemprinzip, Netzwerkprotokollanalyse
Richtung A: Verwendung des IDA-Tools (FS-Plug-In), Reverse Engineering, Kryptographie, Pufferüberlauf usw.
Richtung B: Die 10 größten Sicherheitslücken in den Bereichen Websicherheit, Netzwerksicherheit, Intranet-Penetration, Datenbanksicherheit usw.

2. So lösen Sie die Fragen

Das Auffrischen von Fragen ist sehr wichtig. Viele Menschen können sehen, dass das Auffrischen von Fragen der erste Schritt in anderen CTF-Einführungs-Tutorials und auch ein wichtiger Schritt für den Fortschritt ist

Beispiel 1: Öffnen Sie das Thema „web2“ in Bugku
und finden Sie eine Menge lächelnder Gesichter, die wie verrückt auf Sie zukommen, und die Geschwindigkeit wird immer schneller. Wie beantwortet man diese Frage?

web2 Diese Frage untersucht die Informationsbeschaffung. Klicken Sie in Chrome (Google-Browser) auf f12. Sie können die Konsole öffnen und eine davon sehen

<!--flag KEY{Web-2-bugKssNNikls9100}-->

web2 Was bedeutet dieser Satz? Er sagt Ihnen die Antwort. Sie können KEY{Web-2-bugKssNNikls9100} in das Eingabefeld eingeben, um Punkte zu erhalten.

web2

Zusammenfassung
Was soll ich nach dem Absenden der Meldung tun? Zu diesem Zeitpunkt müssen Sie sich ansehen, was in dieser Frage untersucht wird. Konsole, was ist also eine Konsole? Wenn Sie es wissen, fahren Sie mit der nächsten Frage fort. Wenn Sie es nicht wissen, kann ich Google (was ist eine Webkonsole) oder Baidu verwenden und dann in Zhihu eine Antwort finden. Welche Funktion wird nach dem Drücken von F12 in Chrome angezeigt? ?
Prüfen Sie nach dem Auswendiglernen, ob dieser Wissenspunkt schwierig ist, ob Sie ihn beherrschen können. Wenn Sie Angst vor dem Vergessen haben, sollten Sie sich Notizen machen

3. Nutzen Sie Übung, um den Wettbewerb zu fördern, und nutzen Sie den Wettbewerb, um das Training zu unterstützen

Wählen Sie einen Wettbewerb aus, den es bereits für Writeup gibt, oder nehmen Sie an einem aktuellen CTF-Wettbewerb teil.
Um den Problemlösungsprozess zusammenzufassen, schreiben Sie am besten einen Blog oder ähnliches.

4. Empfohlene Plattform

 Ich empfehle Bugku wärmstens, und nehmen Sie sich Zeit für den Rest. Machen Sie zuerst einen guten Job mit Bugku und machen Sie dann die Offensiv- und Defensivwelt, und Sie werden die Schwelle zum Fortgeschrittenen erreichen.

5. Werkzeugsammlung

Laden Sie nicht zuerst die von anderen empfohlenen Tools herunter, Sie werden sie sowieso nicht lernen, Sie müssen im Prozess der Problemlösung danach suchen, damit Sie Ihren Eindruck vertiefen und eine Reihe von Erfahrungen direkt zusammenfassen können.

4. Programmierung

Viele Menschen werden sich nicht sicher sein, ob sie tief in die Programmierung einsteigen sollen. Gehen Sie nicht zu tief, es reicht fast aus, Sie können ein Programm schreiben, indem Sie sich auf die Dokumentation beziehen, und Sie können es verstehen, weil nicht jede Sprache gelernt werden kann und sie ständig aktualisiert wird. Wenn Sie sich zu sehr auf eine konzentrieren Sprache, Sicherheitskenntnisse sind leicht zu übersehen. Oder gehen Sie tief in einige beliebte Programme wie PHP, Python, Java usw. ein. Unter diesen kann man sagen, dass PHP ein Muss ist. Wenn Sie diese Sprache gründlich lernen können, besteht kein Druck auf die Codeprüfung.

Das Obige sind alles persönliche Gedanken, und Sie müssen entscheiden, wie Sie wählen. Ob Sie tief in die Sache einsteigen möchten oder in welche Sie tief in die Tiefe gehen möchten, ist ein Problem. Sie müssen sorgfältig überlegen, bevor Sie beginnen. Ändern Sie die Richtung danach nicht mehr Auf halbem Weg lernen. Dies ist ein großes Tabu beim Lernen, denn Sie werden dasselbe tun, wenn Sie andere Dinge lernen, es sei denn, Sie finden, dass dies für Ihre Entwicklung nicht sehr geeignet ist.

Zusammenfassen

Das Wichtigste ist, die Fragen zu putzen. Wenn Sie nicht wissen, wie es geht, schauen Sie sich einfach die Aufsätze anderer Leute an. Haben Sie keine Angst, dass Sie es nicht schaffen. Die Fragen zu putzen ist sehr langweilig am Anfang, aber das ist ein Lernprozess. Wenn du es nicht tust, wirst du es nie tun.

Abschließend füge ich die von mir zusammengestellten CTF-Lernmaterialien bei. Wer sie benötigt, kann mir folgen und sie automatisch im Hintergrund versenden.


 

 

Acho que você gosta

Origin blog.csdn.net/Dasdwer/article/details/131946468
Recomendado
Clasificación