61 lines
1.5 KiB
Markdown
61 lines
1.5 KiB
Markdown
# 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.
|
|
|
|

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