Schön dich kennenzulernen, mein Name ist Yuuta Yuyu. Ich bin ein fleißiger Student, der kein Interesse an Live-Codierung von Musik, Vvvv und Spieleentwicklung hat. Bisher hat er an Spieleentwicklung, CTF, Live-Codierung und wettbewerbsfähiger Programmierung gearbeitet.
In dieser Ad-Care wollte ich über das Spiel sprechen, das ich zuvor gemacht habe, aber da die Menge zu groß werden würde, habe ich heute den Inhalt in Eile geändert, Time Attack genannt und CTF mit Cpaw und ihnen gemacht Der Inhalt ist WriteUp zu schreiben.
(~~ Nein, Cpaws WriteUp ist zu erfüllend und der n-te Sud ist bereits gut ~~) Ich hoffe, dieser Artikel kann Ihre Schwelle für CTF senken. Ich möchte besonders, dass die Mitglieder es sehen.
CTF ist einer der Sicherheitswettbewerbe mit dem Namen Capture the Flag und ein Wettbewerb um den Wettbewerb um IT-Technologie und Wissen. Es gibt jeweils 11 Genres, die wie folgt klassifiziert sind. Ich werde Ihnen keine detaillierte Erklärung geben, aber ich werde nur die Schlüsselwörter belassen. Wenn Sie also neugierig sind, gehen Sie bitte auf Google.
Krypto Web (Website-Schwachstellen holprig machen) Umkehren Pwn (Vulnerability Attack) Forensisch (Suche nach versteckten Daten) Netzwerk (Durchbruch bei Paketanalyse / Authentifizierung) PPC (so etwas wie wettbewerbsfähige Programmierung) Steganographie (Analyse von Bild- / Audiodaten) Aufklärung (Netzpirscher) Trivia (Trivia) Verschiedenes (Andere) (Dies sind alle Probleme, die nicht in die oben genannten Genres eingeteilt werden können.)
Dieses Mal möchte ich das von [CpawCTF] bereitgestellte Problem lösen (https://ctf.cpaw.site/index.php). Es gibt viele Arten von Problemen, deren Lösung für Anfänger Spaß macht. Es wird daher empfohlen, das Problem einmal auszuprobieren, ohne sich dieses WriteUp anzusehen.
OS:Windows10 Es wird davon ausgegangen, dass alle Programme in einer WSL-Umgebung ausgeführt werden. Außerdem gehen wir davon aus, dass die allgemeinen Linux-Befehle installiert wurden und sich im Pfad befinden.
(Informationen zum WSL-Setup finden Sie hier](https://qiita.com/Aruneko/items/c79810b0b015bebf30bb))
(Ergänzung: Über CTF unter MacOS) Obwohl es sich um ein MacOS handelt, gibt es Fälle, in denen ELF-Dateien nicht ausgeführt werden können oder einige Tools nicht verwendet werden können. Daher denke ich, dass Probleme nicht auftreten werden, wenn die oben genannte Umgebung so gut wie möglich vorbereitet ist. Wenn Sie dies wirklich unter MacOS tun möchten, verwenden Sie VMWare oder VirtualBox, um eine virtuelle Linux-Umgebung zu erstellen. Dies wird jedoch auch nicht empfohlen, da einige Befehle und Tastenkombinationen je nach Umgebung möglicherweise nicht verfügbar sind.
Bitte lesen Sie die folgenden Seiten. (Um die Lösung zu verkürzen)
WriteUp
Level1
Q1.[Misc] Test Problem Bitte lösen Sie dies wie erwartet. Bitte. Die Erklärung wird ebenfalls weggelassen. Ich wurde jedoch mehrmals von Copypemis oder so etwas abgelehnt, also sollte ich es vielleicht von Hand tun.
Q6.[Crypto] Classical Cipher Dies ist ein typischer Caesar-Code. Caesar-Code ist einer der einzelnen Transliterationstypcodes, bei denen das einfache Alphabet um mehrere Zeichen verschoben wird, um unterschiedliche Sätze zu bilden. Aber leider ist dieser Caesar-Code nichts anderes als ein klassischer Code, ein kleiner Fisch für uns moderne Menschen. Sobald ich nach "Caesar Code Conversion" oder Google suche, erscheint außerdem das Web-Tool zum Entschlüsseln von Caesar Code (Wiederherstellen des verschlüsselten Textes). So ähnlich Kopieren Sie den verschlüsselten Text auf dieser Site, fügen Sie ihn ein und konvertieren Sie ihn. Jetzt können Sie die Flagge bekommen. (Seien Sie vorsichtig, ob es oben oder unten ist)
Q7.[Reversing] Can you execute ? Laden Sie Dateien ohne Erweiterungen herunter. Normalerweise hat jede Datei eine Erweiterung (die angibt, um welche Art von Datei es sich handelt) wie "txt" oder "exe", aber diese Datei hat sie nicht. Wenn ich also mit dem Linux-Befehl "file" herausfinden möchte, wie diese Datei aussieht,
file exec_me
exec_me: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/l,
for GNU/Linux 2.6.24, BuildID[sha1]=663a3e0e5a079fddd0de92474688cd6812d3b550, not stripped
Nun, Sie können sehen, dass diese Datei eine ELF-Datei zu sein scheint. Da die ELF-Datei eine ausführbare Datei ist, die hauptsächlich in der Linux-Umgebung ausgeführt wird, funktioniert sie wie in der WSL. Sie können das Flag also erhalten, indem Sie den folgenden Befehl ausführen.
./exec_me
Q8: [Misc] Can you open this file ? Wenn Sie den Befehl file wie in der vorherigen Ausgabe verwenden,
file open_me
open_me: Composite Document File V2 Document,
Little Endian, Os: Windows, Version 10.0, Code page: 932, Author: v, Template: Normal.dotm,
Last Saved By: v, Revision Number: 1, Name of Creating Application: Microsoft Office Word,
Total Editing Time: 28:00, Create Time/Date: Mon Oct 12 04:27:00 2015,
Last Saved Time/Date: Mon Oct 12 04:55:00 2015,
Number of Pages: 1, Number of Words: 3, Number of Characters: 23, Security: 0
Das Wort "Dokument" zeigt an, dass es sich bei dieser Datei um eine Dokumentdatei handelt. Dieses Mal können Sie das Flag erhalten, damit Word es lesen kann, indem Sie diese Datei in Word mit der Standarderweiterung "doc" öffnen.
(Ergänzung) Warum die Erweiterung einstellen? Die Erweiterung hat den Zweck, klar anzuzeigen, "welchem Format die Datei folgt", hat aber auch eine andere Rolle: "Sie für die Anwendung erkennbar zu machen". Selbst wenn es sich um eine Dokumentdatei handelt, wird sie häufig nicht als Dokumentdatei ohne eine Erweiterung wie ".doc" erkannt. Ein gutes Beispiel ist, dass Sie den Ton nicht hören können, wenn Sie die Erweiterung der Audiodatei ändern. Das erzwungene Lesen kann zu Datenverlust oder Fehlern führen und zu einer Brutstätte für verschiedene Probleme werden. (Dies kann dazu führen, dass die Antwort ein Labyrinth betritt ...) Um diese Probleme zu lösen, vermeiden Sie das Erstellen von Dateien ohne Erweiterungen, es sei denn, es handelt sich um Binärdateien.
Jetzt geht es darum, die Flagge von der Webseite zu bekommen. Drücken Sie beim Lösen von Webproblemen unbedingt die Taste F12 auf Ihrer Tastatur, um die Entwicklertools aufzurufen, und versuchen Sie, die Seite von Ecke zu Ecke zu durchsuchen.
Übrigens, wenn Sie sich an die beiden oben genannten Einstellungen halten,
Do you read description of this page?
Irgendwie kam ein eindeutig verdächtiger Satz heraus. Wenn Sie das Wort "Beschreibung" auf Englisch nachschlagen, werden Sie feststellen, dass es sich um Textinformationen handelt, die in der HTML-Datei geschrieben sind und einen Überblick (eine Zusammenfassung) über die Webseite geben. Wenn Sie also die gesamte HTML-Quelle auf der Registerkarte "Elemente" der zuvor geöffneten Entwicklertools durchsuchen, wird das Flag irgendwo geschrieben. Jetzt können Sie die Flagge bekommen.
Q10.[Forensics] River Es scheint, dass verschiedene Metadaten wie Exif-Informationen an das übergebene Bild angehängt sind. Wenn Sie dieses JPG auf diese Site werfen, sieht es folgendermaßen aus.
Lesen Sie den Namen des Flusses von der Karte und holen Sie sich die Flagge. Nein, der Fortschritt der Zivilisation ist wirklich beängstigend. Bitte achten Sie auf die Metadaten der Fotos.
Q11.[Network]pcap Diesmal ist das Analyseproblem von Netzwerkpaketen. Lassen Sie uns also WireShark (https://2.na.dl.wireshark.org/win64/Wireshark-win64-3.0.7.exe) [installieren], das Tigerjunges der Paketanalyse. Die Geschichte beginnt von dort.
Übrigens, wenn Sie die heruntergeladene Datei mit wireshark öffnen, sehen Sie einen Bildschirm wie diesen.
Wie Sie sehen können, ist die Flagge aus. Japan endet, wenn solche Daten im Klartext ausgetauscht werden.
Q12.[Crypto]HashHashHash! Dieses Mal werden wir den von der NSA entwickelten Code wie SHA1 brechen. Es mag auf den ersten Blick schwierig erscheinen, aber wenn Sie es wirklich googeln, ist es ziemlich gut. Suchen wir also nach dem fraglichen Code, wie er ist. Dann können Sie leicht die Flagge auf einem überraschenden Niveau bekommen. (Dies ist nur mit [Rainbow Table](https://ja.wikipedia.org/wiki/%E3%83%AC%E3%82%A4%E3%83%B3%E3%83%9C möglich % E3% 83% BC% E3% 83% 86% E3% 83% BC% E3% 83% 96% E3% 83% AB) Dank der Technik. Regenbogentisch Hurra.)
Plötzlich kam so etwas wie wettbewerbsfähige Programmierung. Nun, dafür schreibe ich Code. Lass uns schreiben. Formen Sie zuerst die Daten wie folgt:
15
1
93
52
66
31
87
0
42
77
46
24
99
10
19
(Kürzung)
Lesen Sie es als Textdatei, schreiben Sie den Code schnell und fertig. Jetzt können Sie die Flagge bekommen.
sort.c
#include<stdio.h>
#include<stdlib.h>
int main(){
FILE *fp;
int i, j,n=0, tmp;
int array[100];
char filename[] = "test.txt";
char str[100];
fp = fopen(filename,"r");
if(fp == NULL) {
printf("%s file not open!\n", filename);
return -1;
}
while(fgets(str,100, fp) != NULL){
array[n] = atoi(str);
n++;
}
fclose(fp);
for (i=0; i<n; ++i) {
for (j=i+1; j<n; ++j) {
if (array[i] < array[j]) {
tmp = array[i];
array[i] = array[j];
array[j] = tmp;
}
}
}
for (i=0; i<n; ++i){
printf("%d", array[i]);
}
return 0;
}
Level2
Wenn Sie sich die verteilten Bilder ansehen, können Sie sehen, dass die Punkte gezeichnet sind. Es ist auf jeden Fall ein Morse-Signal, also werde ich es übersetzen, um die Flagge zu bekommen. Nur für dieses Problem kann sich die Ausgabe jedoch von Standort zu Standort geringfügig unterscheiden. Ich werde einige Übersetzungsseiten veröffentlichen. Wenn das gewünschte Flag nicht ausgegeben wird, probieren Sie bitte verschiedene Dinge aus. https://l08084.github.io/morse-code-translate-website/ http://www.inv.co.jp/~ike/mores-chg.html https://morsecode.doratool.com/
Q15.[Web] Redirect Wenn die fc2-Site verschwindet, wird möglicherweise eine Seite wie "In n Sekunden nach Hause zurückkehren" angezeigt. Das ist genau die Weiterleitung. Wenn Sie die Entwicklertools starten und den Link auf die gleiche Weise wie im obigen Webproblem drücken, werden Sie feststellen, dass er nicht zur angegebenen Seite springt. Ändern Sie daher die in den Entwicklertools angezeigten Elemente von Elementen in Netzwerk.
Dann können Sie sehen, dass die Informationen der Originalseite angezeigt werden, die aufgrund eines fehlerhaften Programms nicht angezeigt werden konnten. Sie können die Flagge erhalten, indem Sie auf diese Daten doppelklicken.
Q16.[Network+Forensic]HTTP Traffic Ich mache wie gewohnt eine Paketanalyse, aber wenn Sie sich den Inhalt des Pakets ansehen, können Sie sehen, dass viele Daten im Paket versteckt sind.
Exportieren wir diese Daten daher zusammen, indem Sie [Datei] → [Objekt exportieren] → [HTML] auswählen.
Erstellen Sie einen Ordner, teilen Sie die js- und css-Dateien in solche Ordner und fügen Sie die Erweiterung der HTML-Datei ohne die richtige Erweiterung hinzu. (Es ist unbedingt erforderlich, dass die Browseranwendung sie als HTML-Seite erkennt.)
Wenn Sie die HTML-Datei öffnen, wird eine Schaltfläche angezeigt, sodass Sie die Flagge durch Drücken dieser Schaltfläche erhalten können.
Q17.[Recon]Who am I ? Es ist ein Netzpirscherproblem. Sie können die Flagge erhalten, indem Sie nach der Twitter-ID und dem Namen des Spiels suchen, das häufig gespielt wird. Lassen Sie uns die Spiel-ID usw. nicht einfach anzeigen.
Wenn ich diese Datei als Textdatei öffne,
Ich habe mir etwas ausgedacht, das in meinen Träumen herauszukommen scheint. Ich habe Angst. Wenn Sie also weiterhin die Zeichenkette "love live!" Ersetzen, können Sie die Flagge auf natürliche Weise erhalten.
Q19.[Misc]Image! Dieses Mal wird eine Zip-Datei übergeben, also entpacken wir sie.
Ich dachte, ich würde von Anfang an stöbern, aber ich bekam nicht viele Informationen. Wenn ich jedoch die Bilddatei durchsuche, die nur eine war, sehe ich ein Bild wie dieses.
Ich fragte mich, ob es irgendwo Daten gab und als Ergebnis des Durchsuchens verschiedener Dateien, als ich meta.xml durchsuchte.
<?xml version="1.0" encoding="UTF-8"?>
<office:document-meta xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:smil="urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:officeooo="http://openoffice.org/2009/office" office:version="1.2"><office:meta><meta:creation-date>2015-10-16T09:50:35.362650845</meta:creation-date><dc:date>2015-10-16T10:06:25.173018557</dc:date><meta:editing-duration>PT1M11S</meta:editing-duration><meta:editing-cycles>4</meta:editing-cycles><meta:generator>LibreOffice/4.2.8.2$Linux_X86_64 LibreOffice_project/420m0$Build-2</meta:generator><meta:document-statistic meta:object-count="17"/></office:meta></office:document-meta>
OpenDocument konzentriert sich dabei auf OpenDocument und scheint eine im Zip-Format komprimierte Datei zu sein. Da es sich um ein Dokument handelt, konnte ich die Flagge erhalten, indem ich den Zip-Ordner mit Word öffnete. Ohne Vorkenntnisse ist viel Inspiration erforderlich.
Q20.[Crypto]Block Cipher c Die Quelldatei wird übergeben, daher besteht das Problem darin, die Quelle zu lesen und das Flag zu erhalten.
crypto100.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char* argv[]){
int i = 0;
int j = 0;
int key = atoi(argv[2]);
const char* flag = argv[1];
printf("cpaw{");
for(i = key - 1; i <= strlen(flag); i+=key){
for(j = i; j>= i - key + 1; j--){
printf("%c", flag[j]);
}
}
printf("}");
return 0;
}
Sie können das Flag erhalten, indem Sie die Anweisung vor der Entschlüsselung setzen und festlegen, wie viele Zeichen im Befehlszeilenargument verschoben und ausgeführt werden sollen. In meinem Fall habe ich die Spezifikationen der Befehlszeilenargumente nicht gut verstanden, sodass ich nur Core-Dumps verursachte. Betrachtung.
Q21.[Reversing]reversing easy! Dieses Mal habe ich das Problem mit einer Reverse Assembly namens IDA gelöst. IDA installieren
Wenn ich die betreffende Binärdatei mit IDA öffne, wird ein Bildschirm wie dieser angezeigt. IDA ist eine wirklich leistungsstarke Software, die zwar kostenlos ist, aber auf leicht verständliche Weise anzeigt, welche Art von Funktion zu welchem Zeitpunkt aufgerufen wird.
Zusätzlich zur Textansicht gibt es Registerkarten. Durchsuchen Sie sie also. Als ich dann zur Registerkarte Hex-Ansicht (binärer hexadezimaler Speicherauszug) wechselte,
Eine wirklich gute Zeichenkette kam heraus. Sie können das Flag erhalten, indem Sie es mit Ausnahme der Symbole verbinden, die möglicherweise nicht mit dem Flag zusammenhängen. Auf den ersten Blick fand ich es einfach, weil seltsame Zeichen in die umgekehrte Baugruppe eingemischt wurden, sodass ich nicht erkennen konnte, welche Zeichenfolge ihr entsprach.
Q22.[Web]Baby's SQLi - Stage 1- Dies ist ein Problem mit der SQL-Injection, bei dem eine Website-Sicherheitsanfälligkeit ausgenutzt wird. Wenn Sie auf die Daten in der Tabelle verweisen, können Sie anscheinend das Flag erhalten. Geben Sie daher die folgende SQL-Anweisung in das Formular ein.
SELECT * FROM palloc_home
Dann erscheint die gesuchte Tabelle und Sie können die Flagge erhalten.
Wenn Sie diese SQL-Anweisung leicht entschlüsseln können SELECT ... Daten abrufen.
Q28.[Network] Can you login? Betrachten Sie das Paket mit Wireshark![Kommentar 2019-12-18 013520.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/338549/6fdd979b- d652-cbe8-8210-aacc1f1301a4.png (Akan) Sie können sehen, dass Sie die Anmeldeinformationen sehen können, die nicht deutlich sichtbar sein sollten. Dies liegt daran, dass das FTP-Protokoll selbst den Benutzernamen / das Kennwort für die Authentifizierung und die Datenübertragung nicht verschlüsselt, sondern im Klartext austauscht. Die Welt endet, wenn dieses Protokoll täglich bei der Übertragung kritisch sensibler Daten verwendet wird. Es ist ein Protokoll, das für das heutige Zeitalter eindeutig nicht geeignet ist. (Natürlich wird FTP immer noch für begrenzte Zwecke verwendet.)
Da IP auch vollständig sichtbar ist, werden wir dieses Mal FileZilla verwenden, um die Datei abzurufen. FileZilla installieren Bitte installieren Sie FileZilla for Client.
Stellen Sie mit FileZilla eine Verbindung zum FTP-Server her, indem Sie die oben genannten Informationen verwenden. (Aus diesem Grund sollten Sie den Client herunterladen.) Nehmen Sie vor dem Herstellen der Verbindung Einstellungen vor, um versteckte Dateien zwangsweise anzuzeigen. (Weil CTF wichtige Informationen in versteckten Dateien enthalten kann) Die Einstellung kann einfach durch Auswahl von [Server] → [Erzwungene Anzeige versteckter Dateien] vorgenommen werden.
Wenn die Verbindung erfolgreich hergestellt wurde, laden Sie die Datei .hidden_flag_file vom FTP-Server herunter und durchsuchen Sie sie mit dem Befehl strings oder dem Texteditor, um das Flag zu erhalten. Natürlich können Sie auch Dateien verbinden und herunterladen, indem Sie den Befehl wie unten gezeigt in das Terminal eingeben.
$ ftp
ftp> open
(to) 157.7.52.186
Connected to 157.7.52.186.
220 Welcome to Cpaw CTF FTP service.
Name (157.7.52.186:user): cpaw_user
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls -l
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-r--r-- 1 ftp ftp 36 Sep 01 2017 dummy
226 Directory send OK.
ftp> ls -la
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
drwxr-xr-x 2 ftp ftp 42 Jun 18 2019 .
drwxr-xr-x 2 ftp ftp 42 Jun 18 2019 ..
-rw-r--r-- 1 ftp ftp 39 Sep 01 2017 .hidden_flag_file
-rw-r--r-- 1 ftp ftp 36 Sep 01 2017 dummy
226 Directory send OK.
ftp> get .hidden_flag_file
local: .hidden_flag_file remote: .hidden_flag_file
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for .hidden_flag_file (39 bytes).
226 Transfer complete.
39 bytes received in 0.00 secs (8.2742 kB/s)
Vielen Dank für das bisherige Surfen. Wenn Sie etwas schwer zu verstehen finden, teilen Sie uns dies bitte in den Kommentaren mit.
Übrigens, wenn Sie WriteUp bisher gesehen haben, werden Sie verstehen, dass jeder diese Probleme mit ein wenig Inspiration lösen kann. Ich mache nicht so viel spezialisiert. (Ich möchte das glauben) Wenn Sie dies glauben, versuchen Sie bitte, dieses Problem sofort selbst zu lösen. Ich denke, Sie können verschiedene Entdeckungen machen, indem Sie es selbst lösen.
Dieses Mal habe ich nur WriteUp bis Level2 gepostet, aber wenn ich eine Chance habe, werde ich WriteUp von Level3 versuchen und WriteUp posten. Wir sehen uns im nächsten Artikel.
Verfasser: Yuyu Yuta Twitter Hatebu
Recommended Posts