From f313e4d5fe7e26a34b0a0aed68ba757f4a743b86 Mon Sep 17 00:00:00 2001 From: Enrique Date: Wed, 14 Nov 2018 22:50:35 -0600 Subject: [PATCH] Agregar square y writeup de de-anonymization --- square/de-anonymization.md | 60 +++++++++++++++++++++++++++++++++++++ square/rp.png | Bin 0 -> 22467 bytes 2 files changed, 60 insertions(+) create mode 100644 square/de-anonymization.md create mode 100644 square/rp.png diff --git a/square/de-anonymization.md b/square/de-anonymization.md new file mode 100644 index 0000000..11182aa --- /dev/null +++ b/square/de-anonymization.md @@ -0,0 +1,60 @@ +# de-anonymization + +Se nos entrega la +[url](https://glacial-coast-79626.squarectf.com/4WzKpfyFbgdEzO3ONxDPpIXdo9Qps5) +de un sitio web, al cual tenemos que ingresar como un tal Yakubovics, +el inconveniente es que no tenemos la contraseña, pero tenemos varios +datasets que prometen tener información. + +Una vez que ingresamos al sitio web, podemos visualizar la opción de +recuperar la contraseña, como medida se nos piden preguntas acerca +del dueño del correo. + +![Datos](rp.png) + +Todo parece simple, revisando los datasets podremos encontrar toda +la información que se nos solicita, el detalle será unir los +archivos en uno solo, o en su dado caso, realizar los cruces +correctos. Para este caso se empleó Python: + +```python +#!/usr/bin/env python +# coding: utf-8 + +# Librería + +import pandas as pd + +# Lectura de archivos + +df1 = pd.read_csv('1.csv') +df2 = pd.read_csv('2.csv') +df3 = pd.read_csv('3.csv') +df4 = pd.read_csv('4.csv') +df5 = pd.read_csv('5.csv') + +# Unión de dataframes + +jdf1 = df1.merge(df2, how = 'inner').merge(df3, how = 'inner').merge(df4, how = 'inner').merge(df5, how = 'inner') + +# Exportar a csv + +jdf1.to_csv('final') + +# A partir de aquí podemos utilizar herramientas como grep, hará el proceso más sencillo. + +``` + +Por último buscamos coincidencias en el dataset: + +```shell +>_ grep -i Yakubovics | xargs -d ',' +``` + +Con esto podremos llenar la información que nos pide la página de +recuperación, asignar una nueva contraseña y ver la contraseña +asignada anteriormente, que en este caso será la flag. + +``` +flag-5ed43dc6356b2b68c689422769952b82 +``` diff --git a/square/rp.png b/square/rp.png new file mode 100644 index 0000000000000000000000000000000000000000..c71d322b5711434767b7c05405681aa7c49d6e00 GIT binary patch literal 22467 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