GeoGuessitUdine - SnakeCTF2025 Final

Reto basado en geolocalizar un pueblo con una subestacióneléctrica especial en Udine

GeoGuessitUdine - SnakeCTF2025 Final

Autor del reto: Michele Lizzit

Dificultad: Fácil

Enunciado

1
2
3
4
Geoguess it. It's easy. It's in the Udine province.

We have found a place full of snakes. We sent our photographer to take a picture
but he got lost. He sent us two pictures, can you locate where the first one was taken?

Archivos

1
pic1.png

pic1.png

1
pic2.png

pic2.png

Archivos utilizados en mi repositorio de Github.

Analizando el reto

La zona mostrada se corresponde con un pueblo rural que posee una subestación eléctrica compacta vertical característica de la zona de Udine. Además, se observa una fuente especial dentro de una especie de plaza en la zona.

Solver del equipo

En este caso, el reto se resolvió buscando ocurrencias de la fuente en Google Images. Al hacerlo, se mostraban imágenes del pueblo en cuestión. Una vez se encontró el pueblo, se buscó el lugar exacto de las imágenes para establecer la localización.

mapa

final

Solver de los desarrolladores

En este caso, haciendo uso de la herramienta online Overpass para el filtrado masivo de lugares en específico, se puede resolver el reto filtrando por fuentes especiales y por estaciones eléctricas en la región de Udine.

El script es el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
[out:json][timeout:25];

area
  ["boundary"="administrative"]
  ["admin_level"="6"]
  ["name:fur"="Udin"]
  ->.udine;

(
  node["power"~"substation|transformer"](area.udine);
  way ["power"~"substation|transformer"](area.udine);
)->.p;

(
  node    ["historic"="monument"](area.udine);
  way     ["historic"="monument"](area.udine);
  relation["historic"="monument"](area.udine);
)->.m;

(
  node    ["amenity"="drinking_water"](area.udine);
  way     ["amenity"="drinking_water"](area.udine);
  relation["amenity"="drinking_water"](area.udine);
)->.drink;

(
  node    ["leisure"="playground"](area.udine);
  way     ["leisure"="playground"](area.udine);
  relation["leisure"="playground"](area.udine);
)->.playgrounds;

nwr.playgrounds(around.drink:50)->.s1;
nwr.s1(      around.m:50    )->.s2;
nwr.s2(      around.p:50    )->.result;

(
  .result;
);
out body;
>;
out skel qt;

final_overpass

En la página oficial de SnakeCTF, podrás encontrar todas las resoluciones oficiales.

Flag

snakeCTF{Dr1nk1ng_W4t3r!!!cb1b03bf92b0b94b}

Esta entrada está licenciada bajo CC BY 4.0 por el autor.