Compression (Programmation) - 404CTF2022

Principe:
Créer un script extrayant plusieurs fois de site une archive récursive

Infos (cf menu latéral):
🚩 Flaggué! +100 points gagnés — 💾 Téléchargez les fichiers du challenge
404CTF{C0mPr3Ssi0n_m4X1m4L3_m41S_p4S_3ff1C4c3}

Le challenge

Le challenge nous donne une archive flag2500.tar.gz que l'on doit extraire successivement jusqu'à trouver le flag (l'archive et le script de décompression sont dans le tarxz du writeup)

L'archive

L'archive est simplement un targz, contenant lui-même (en arrière plan) un autre targz
On se fait alors un script qui va exécuter 2500 extractions successives (vu le nom du fichier)

Le script ici présent est une boucle de 2500 itérations (seq 0 2500) qui va, pour chaque fichier d'un dossier (car j'ignore quel sera le nom des archives successives) extraire (tar) le contenu du fichier sur place puis supprimer l'archive originale (rm) histoire de ne pas la ré-extraire à chaque fois

Fun fact: de 0 à 2500, il y a… 2501 extractions, puis suppressions!

La 2501e extraction a foiré (car le $file était flag.txt et non une archive), suivie d'une suppression du flag!

Un meilleure script

J'ai donc refait mon script (pour le fun) histoire qu'il s'arrête tout seul au bon moment (quand l'extraction foire, il stoppe avant de supprimer le fichier)
Et on obtient alors le flag

Flag: 404CTF{C0mPr3Ssi0n_m4X1m4L3_m41S_p4S_3ff1C4c3}