Files
ctf/2018/square/de-anonymization.md

1.5 KiB

de-anonymization

Se nos entrega la url 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

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:

#!/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:

>_ 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