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.