Git Is Good
1 minuto de lectura
Se nos proporciona un archivo ZIP que contiene un fichero flag.txt:
$ ls
flag.txt
$ cat flag.txt
CTFlearn{REDACTED}
Pero esta no es la flag. Mirando un poco más en la carpeta, descubrimos un directorio .git, por lo que estamos en un repositorio de Git (también, el nombre del reto nos lo indica):
$ ls -a
. .. .git flag.txt
Podemos utilizar git log para mostrar commits anteriores (es decir, confirmaciones que son como guardados del proyecto a lo largo del tiempo):
$ git log
commit d10f77c4e766705ab36c7f31dc47b0c5056666bb (HEAD -> master)
Author: LaScalaLuke <lascala.luke@gmail.com>
Date: Sun Oct 30 14:33:18 2016 -0400
Edited files
commit 195dd65b9f5130d5f8a435c5995159d4d760741b
Author: LaScalaLuke <lascala.luke@gmail.com>
Date: Sun Oct 30 14:32:44 2016 -0400
Edited files
commit 6e824db5ef3b0fa2eb2350f63a9f0fdd9cc7b0bf
Author: LaScalaLuke <lascala.luke@gmail.com>
Date: Sun Oct 30 14:32:11 2016 -0400
edited files
Con git diff podremos mostrar las differencias entre dos commits (tenemos que indicar algumos de los primeros caracteres de los identificadores del commit). Este es interesante:
$ git diff 6e824db5 195dd65b
diff --git a/flag.txt b/flag.txt
index c5250d0..8684e68 100644
--- a/flag.txt
+++ b/flag.txt
@@ -1 +1 @@
-CTFlearn{REDACTED}
+CTFlearn{protect_your_git}
Y aquí tenemos la flag.