Ravi de vous rencontrer, je m'appelle Yuuta Yuyu. Je suis un étudiant assidu qui n'a aucun intérêt pour la musique de codage en direct, le vvvv et le développement de jeux. Jusqu'à présent, il a travaillé sur le développement de jeux, le CTF, le codage en direct et la programmation compétitive.
Dans cette publicité, je voulais parler du jeu que j'ai fait auparavant, mais comme le montant allait être trop énorme, j'ai changé le contenu à la hâte aujourd'hui, appelé Time Attack et fait CTF avec Cpaw et ils Le contenu est d'écrire WriteUp.
(~~ Non, WriteUp de Cpaw est trop satisfaisant, et la nième décoction est déjà bonne ~~) J'espère que cet article peut abaisser votre seuil pour le FCT. Je veux surtout que les membres le voient.
CTF est l'un des concours de sécurité appelé Capture the flag, et est un concours pour concourir pour la technologie et les connaissances informatiques. Il y a 11 genres chacun, qui sont classés comme suit. Je ne vais pas vous donner une explication détaillée, mais je ne laisserai que les mots-clés, donc si vous êtes curieux, veuillez google.
Crypto Web (rendre les vulnérabilités du site Web cahoteuses) Inversion Pwn (attaque de vulnérabilité) Forensic (recherche de données cachées) Réseau (analyse de paquets / percée d'authentification) PPC (quelque chose comme une programmation compétitive) Stéganographie (analyse d'images / données audio) Recon (harceleur de filet) Trivia (trivia) Divers (Autre) (Ce sont tous les problèmes qui ne peuvent pas être classés dans les genres ci-dessus)
Cette fois, je voudrais résoudre le problème fourni par CpawCTF. Il existe de nombreux types de problèmes qui sont amusants à résoudre pour les débutants, il est donc recommandé d'essayer le problème une fois sans regarder ce WriteUp.
OS:Windows10 Tous les programmes sont supposés s'exécuter dans un environnement WSL. De plus, nous supposerons que les commandes Linux générales ont été installées et sont dans le chemin.
(Pour la configuration WSL, voir ici](https://qiita.com/Aruneko/items/c79810b0b015bebf30bb))
(Ajout: À propos de CTF sous MacOS) Bien qu'il s'agisse d'un MacOS, il existe des cas où les fichiers ELF ne peuvent pas être exécutés ou certains outils ne peuvent pas être utilisés, je pense donc que les problèmes ne se produiront pas si l'environnement ci-dessus est préparé autant que possible. Si vous voulez vraiment le faire sur MacOS, utilisez VMWare ou VirtualBox pour créer un environnement virtuel Linux. Cependant, cela n'est pas non plus recommandé car certaines commandes et touches de raccourci peuvent ne pas être disponibles en fonction de l'environnement.
Veuillez lire les sites suivants. (Pour raccourcir la solution)
WriteUp
Level1
Q1.[Misc] Test Problem Veuillez résoudre ce problème comme prévu. S'il vous plaît. L'explication est également omise. Cependant, j'ai été rejeté plusieurs fois par copypémis ou quelque chose du genre, alors je devrais peut-être le faire à la main.
Q6.[Crypto] Classical Cipher Ceci est un code César typique. Le code César est l'un des codes de type de translittération unique qui décale l'alphabet simple de plusieurs caractères pour créer des phrases différentes. Mais hélas, ce code César n'est rien de plus qu'un code classique, un petit poisson pour nous les gens modernes. De plus, dès que je recherche "Caesar code conversion" ou Google, l'outil Web de déchiffrement du code César (restauration du texte crypté) sort. Quelque chose comme ça Copions et collons le texte crypté sur ce site et convertissons-le. Vous pouvez maintenant obtenir le drapeau. (Soyez prudent s'il est supérieur ou inférieur)
Q7.[Reversing] Can you execute ? Téléchargez des fichiers sans extensions. Normalement, chaque fichier a une extension (indiquant de quel type de fichier il s'agit) telle que "txt" ou "exe", mais ce fichier ne l'a pas. Donc, quand j'essaye de découvrir à quoi ressemble ce fichier en utilisant la commande Linux "file",
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
Eh bien, vous pouvez voir que ce fichier semble être un fichier ELF. Étant donné que le fichier ELF est un fichier exécutable qui fonctionne principalement dans l'environnement Linux, il fonctionne tel quel sur WSL. Vous pouvez donc obtenir le drapeau en exécutant la commande suivante.
./exec_me
Q8: [Misc] Can you open this file ? Si vous utilisez la commande de fichier comme dans le numéro précédent,
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
Le mot «Document» semble indiquer que ce fichier est un fichier document. Cette fois, afin de laisser Word le lire, vous pouvez obtenir l'indicateur en ouvrant ce fichier dans Word avec l'extension par défaut "doc".
(Ajout) Pourquoi définir l'extension L'extension a pour but de montrer clairement «quel format suit le fichier», mais elle a aussi un autre rôle de «rendre reconnaissable du côté de l'application». En fait, même s'il s'agit d'un fichier document, il n'est souvent pas reconnu comme un fichier document sans une extension telle que ".doc". Un bon exemple est que si vous modifiez l'extension du fichier audio, vous ne pourrez pas entendre le son. Une lecture forcée peut entraîner une perte de données ou des erreurs, et peut devenir un foyer pour divers problèmes. (Cela peut amener la réponse à entrer dans un labyrinthe ...) Pour résoudre ces problèmes, essayez d'éviter de créer des fichiers sans extensions à moins qu'il ne s'agisse de fichiers binaires.
Il s'agit maintenant d'obtenir le drapeau de la page Web. Lorsque vous résolvez des problèmes Web, assurez-vous d'appuyer sur la touche F12 de votre clavier pour afficher les outils de développement et essayez de parcourir la page d'un coin à l'autre.
À propos, si vous adhérez aux deux attitudes ci-dessus,
Do you read description of this page?
D'une manière ou d'une autre, une phrase clairement suspecte est sortie. Si vous recherchez le mot «description» en anglais, vous constaterez que ce sont des informations textuelles qui sont écrites dans le fichier html et qui donnent un aperçu (résumé) de la page Web. Ainsi, si vous recherchez partout dans la source html dans l'onglet Éléments des outils de développement que vous avez ouverts précédemment, l'indicateur est écrit quelque part. Vous pouvez maintenant obtenir le drapeau.
Q10.[Forensics] River Il semble que diverses métadonnées telles que les informations Exif soient attachées à l'image transmise. Donc, si vous lancez ce jpg sur ce site, il ressemblera à ceci.
Lisez le nom de la rivière sur la carte et récupérez le drapeau. Non, les progrès de la civilisation sont vraiment effrayants. Veuillez faire attention aux métadonnées des photos.
Q11.[Network]pcap Cette fois, c'est le problème de l'analyse des paquets réseau. Alors [installons] WireShark (https://2.na.dl.wireshark.org/win64/Wireshark-win64-3.0.7.exe), le tigre de l'analyse des paquets. L'histoire commence à partir de là.
À propos, si vous ouvrez le fichier téléchargé avec WireShark, vous verrez un écran comme celui-ci.
Comme vous pouvez le voir, le drapeau est sorti. Le Japon prendra fin si ces données sont échangées en texte brut.
Q12.[Crypto]HashHashHash! Cette fois, nous casserons le code conçu par la NSA tel que SHA1. Cela peut sembler difficile à première vue, mais si vous le recherchez vraiment sur Google, c'est plutôt bien. Cherchons donc le code en question tel quel. Ensuite, vous pouvez facilement obtenir le drapeau à un niveau surprenant. (Ceci n'est possible qu'avec [Rainbow Table](https://ja.wikipedia.org/wiki/%E3%83%AC%E3%82%A4%E3%83%B3%E3%83%9C % E3% 83% BC% E3% 83% 86% E3% 83% BC% E3% 83% 96% E3% 83% AB) Merci à la technique. Rainbow table hourra.)
Soudain, quelque chose comme une programmation compétitive est arrivé. Eh bien, c'est pour cela que j'écris du code. écrivons. Tout d'abord, modélisez les données comme ceci,
15
1
93
52
66
31
87
0
42
77
46
24
99
10
19
(réduction)
Lisez-le sous forme de fichier texte, écrivez le code rapidement et vous avez terminé. Vous pouvez maintenant obtenir le drapeau.
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
Si vous regardez les images distribuées, vous pouvez voir que les points sont dessinés. Puisqu'il s'agit d'un signal Morse par tous les moyens, j'obtiendrai le drapeau en le traduisant. Cependant, uniquement pour ce problème, la sortie peut différer légèrement d'un site à l'autre. Je publierai quelques sites de traduction, donc si le drapeau souhaité n'est pas affiché, veuillez essayer différentes choses. https://l08084.github.io/morse-code-translate-website/ http://www.inv.co.jp/~ike/mores-chg.html https://morsecode.doratool.com/
Q15.[Web] Redirect Si le site fc2 disparaît, une page du type "Retour à l'accueil dans n secondes" peut apparaître. C'est exactement la redirection. Si vous démarrez les outils de développement et appuyez sur le lien de la même manière que le problème Web ci-dessus, vous constaterez qu'il ne passe pas à la page spécifiée. Par conséquent, modifiez les éléments affichés dans les outils de développement des éléments au réseau.
Ensuite, vous pouvez voir que les informations de la page d'origine qui n'ont pas pu être affichées en raison d'un type de programme défectueux sont affichées. Vous pouvez obtenir le drapeau en double-cliquant sur ces données.
Q16.[Network+Forensic]HTTP Traffic Je fais une analyse des paquets comme d'habitude, mais si vous regardez le contenu du paquet, vous pouvez voir que beaucoup de données sont cachées dans le paquet.
Par conséquent, exportons ces données ensemble en sélectionnant [Fichier] → [Exporter l'objet] → [HTML].
Créez un dossier, divisez les fichiers js et css dans des dossiers comme celui-ci, et ajoutez correctement l'extension au fichier html sans l'extension. (Il est absolument nécessaire de faire en sorte que l'application du navigateur le reconnaisse comme une page html.)
Lorsque vous ouvrez le fichier html, un bouton apparaît, vous pouvez donc obtenir le drapeau en appuyant sur ce bouton.
Q17.[Recon]Who am I ? C'est un problème de harceleur net. Vous pouvez obtenir le drapeau en recherchant l'identifiant Twitter et le nom du jeu souvent joué. Ne montrons pas facilement l'ID du jeu, etc.
Lorsque j'ouvre ce fichier en tant que fichier texte,
J'ai trouvé quelque chose qui semble sortir de mes rêves. J'ai peur, donc si vous continuez à remplacer la chaîne de caractères "love live!" Avec un caractère, vous pouvez obtenir le drapeau naturellement.
Q19.[Misc]Image! Cette fois, un fichier zip sera passé, alors décompressons-le.
J'ai pensé, je naviguerais depuis le début, mais je n'ai pas obtenu beaucoup d'informations. Cependant, lorsque je parcours le fichier image qui n'en était qu'un, je vois une image comme celle-ci.
Je me suis demandé s'il y avait des données quelque part, et à la suite de la navigation dans divers fichiers, lorsque j'ai parcouru meta.xml,
<?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>
En se concentrant sur OpenDocument dans ce domaine, il semble qu'OpenDocument est un fichier compressé au format zip. Puisqu'il s'agit d'un document, j'ai pu obtenir le drapeau en ouvrant le dossier zip avec word. Sans connaissances préalables, beaucoup d'inspiration est nécessaire.
Q20.[Crypto]Block Cipher c Le fichier source est passé, le problème est donc de lire la source et d'obtenir l'indicateur.
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;
}
Vous pouvez obtenir l'indicateur en plaçant l'instruction avant le déchiffrement et le nombre de caractères à déplacer dans l'argument de ligne de commande et en l'exécutant. Dans mon cas, je ne comprenais pas bien les spécifications des arguments de ligne de commande, donc je ne causais que des vidages de mémoire. Réflexion.
Q21.[Reversing]reversing easy! Cette fois, j'ai résolu le problème en utilisant un assemblage inversé appelé IDA. Installer IDA
Lorsque j'ouvre le fichier binaire en question avec IDA, j'obtiens un écran comme celui-ci. IDA est un logiciel très performant, et bien qu'il soit gratuit, il affiche le type de fonction appelée à quel moment d'une manière facile à comprendre.
Il existe des onglets en plus de la vue texte, alors parcourons-les. Ensuite, lorsque je suis passé à l'onglet Hex-view (vidage hexadécimal binaire),
Une très bonne chaîne de caractères est sortie. Vous pouvez obtenir le drapeau en le connectant à l'exception des symboles qui peuvent ne pas être liés au drapeau. À première vue, je pensais que c'était facile parce que des caractères étranges étaient mélangés à l'assemblage inversé de sorte que je ne pouvais pas dire à quelle chaîne de caractères correspondait.
Q22.[Web]Baby's SQLi - Stage 1- Il s'agit d'un problème d'injection SQL qui exploite une vulnérabilité de site Web. Apparemment, si vous faites référence aux données de la table, vous pouvez obtenir l'indicateur, alors tapez l'instruction SQL suivante dans le formulaire.
SELECT * FROM palloc_home
Ensuite, la table que vous recherchez apparaîtra et vous pourrez obtenir le drapeau.
Si vous décryptez facilement cette instruction SQL SELECT ... Obtenez des données.
Q28.[Network] Can you login? En regardant le paquet avec Wireshark![Commentaire 2019-12-18 013520.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/338549/6fdd979b- d652-cbe8-8210-aacc1f1301a4.png "(Akan)") Vous pouvez voir que vous pouvez voir les informations d'identification qui ne devraient pas être clairement visibles. En effet, le protocole FTP lui-même ne crypte pas le nom d'utilisateur / mot de passe pour l'authentification et le transfert des données, mais les échange en texte brut. Le monde se termine lorsque ce protocole est utilisé au quotidien lors de l'envoi de données critiques. C'est un protocole qui n'est manifestement pas adapté à l'âge actuel. (Bien sûr, FTP est toujours utilisé à des fins limitées.)
Comme ip est également complètement visible, cette fois, nous utiliserons FileZilla pour obtenir le fichier. Installer FileZilla Veuillez installer FileZilla for Client.
Connectez-vous au serveur FTP en utilisant les informations ci-dessus avec FileZilla. (C'est pourquoi vous devez télécharger le client) De plus, avant de vous connecter, définissez les paramètres pour afficher de force les fichiers cachés. (Parce que CTF peut contenir des informations importantes dans des fichiers cachés) Le réglage peut être facilement effectué en sélectionnant [Serveur] → [Affichage forcé des fichiers cachés].
Si la connexion réussit, téléchargez le fichier .hidden_flag_file à partir du serveur FTP et parcourez avec la commande strings ou l'éditeur de texte pour obtenir l'indicateur. Bien entendu, vous pouvez également vous connecter et télécharger des fichiers en tapant la commande suivante dans le terminal.
$ 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)
Merci d'avoir parcouru jusqu'à présent. Si vous trouvez quelque chose de difficile à comprendre, veuillez nous le faire savoir dans les commentaires.
Au fait, si vous avez déjà vu WriteUp, vous comprendrez que n'importe qui peut résoudre ces problèmes avec un peu d'inspiration. Je ne fais pas tellement de spécialisation. (Je veux croire ça) Si vous pensez que oui, essayez de résoudre ce problème vous-même dès maintenant. Je pense que vous pouvez faire différentes découvertes en le résolvant vous-même.
Cette fois, je n'ai posté que WriteUp jusqu'au Level2, mais si j'ai une chance, je vais essayer WriteUp de Level3 et poster WriteUp. Rendez-vous dans le prochain article.
Écrivain: Yuyu Yuta Twitter Hatebu
Recommended Posts