Skip to main content
  1. Writeups/

BreizhCTF 2023 - Bar ou Turbot

3 mins· 0 · 0 ·
osint BreizhCTF 2023
Table of Contents
BreizhCTF 2023 - This article is part of a series.
Part 2: This Article
Enoncé>

Enoncé #

Un soir d'hiver, quelque part en France,
Un homme erre, ivre et seul,
Il cherche un bar où il a bu,
Mais le nom lui fait cruellement défaut.

Il se rappelle d'un Starbucks,
Où il a pris un café plus tôt dans la soirée,
Avant de s'engager dans une rue piétonne,
Où gît son destin sous son coeur.

Il avance pendant environ cent mètres,
Avant que ses yeux ne trouvent un magasin de bandes dessinées fermé,
Mais juste à côté, il aperçoit le bar où il avait passé la nuit.

Il se remémore les rires des clients et les verres de bière vides,
Mais son esprit s'obstine à ne pas lui rappeler le nom du bar,
Il poursuit sa recherche avec espoir,
Emportant avec lui sa mémoire troublée.

Le flag est le nom du bar en minuscule et sans espace. Par exemple pour le bar La Boussole le flag serait BZHCTF{laboussole}.

Auteur: b0oml

Solution>

Solution #

Pour résoudre ce challenge, nous allons utiliser l’outil Overpass-Turbo. Il s’agit d’un outil de recherche et de visualisation de données provenant d’OpenStreetMap (OSM). Il utilise l’API Overpass d’OSM pour récupérer des données géographiques et permet aux utilisateurs de créer des requêtes personalisées pour extraire des données spécifiques.

Tout d’abord reprenons l’énoncé et découpons le en une liste d’information dont nous disposons :

  1. L’homme est en France
  2. Il cherche un bar
  3. L’histoire commence par un Starbucks
  4. Puis continue dans une rue piétonne pendant 100 mètres
  5. Il y a un magasin de bandes dessinées fermé à environ 100 mètres
  6. Juste a coté du magasin de bandes dessinées se trouve le bar que l’ont cherche

Grâce a ces informations on peut structurer notre requête Overpass.

Zone géographique>

Zone géographique #

Nous somme apparement en France, on peut commencer notre requête Overpass par cette information.

area[name="France"];

out;
Starbucks>

Starbucks #

L’élement de base de l’histoire est le Starbucks, on peut donc chercher tous les Starbucks de France.

area[name="France"];

// Get Starbucks in France
node[brand=Starbucks](area)->.starbucks;

(.starbucks;);

out;

Starbucks

Rue piétonne>

Rue piétonne #

Une rue pietonne se trouve proche du starbucks, arbitrairement nous allons choisir de chercher les rue piétonnes 25m autour des Starbucks.

area[name="France"];

// Get Starbucks in France
node[brand=Starbucks](area)->.starbucks;

// Get all pedestrian roads that is 25m around a Starbucks
way(around.starbucks:25)[highway=pedestrian]->.pedestrian;

(.pedestrian;);

out;
Magasin de comics>

Magasin de comics #

Un magasin de comic se trouve à 100 mètres du starbucks mais visiblement le long de la rue piétonne, on peut donc se servir des rues piétonnes trouvée précédémment pour continuer notre recherche.

area[name="France"];

// Get Starbucks in France
node[brand=Starbucks](area)->.starbucks;

way(around.starbucks:25)[highway=pedestrian]->.pedestrian;

// Get books shop in the ~100m around found Starbucks 
node(around.pedestrian:25)[books]->.shops;

(.shops;);

out;

Dans cette requête lors du challenge nous avions utilisés le type books pour la recherche du magasin de comics, il se trouve qu’il existe un sous-groupe books=comic qui aurait permis d’encore affiner la recherche.

Comics shops

On peut voir dans les résultats que nous n’avons déjà plus qu’un résultat en France, ce n’est pas le bar que nous cherchons, mais nous y sommes presque.

Bar>

Bar #

Il ne reste plus qu’à lister les bars à coté du magasin de comics trouvé, et si nous ne nous sommes pas trompés précédemment, un seul bar ressortira et sera le flag de ce challenge.

area[name="France"];

// Get Starbucks in France
node[brand=Starbucks](area)->.starbucks;

way(around.starbucks:25)[highway=pedestrian]->.pedestrian;

// Get books shop in the ~100m around found Starbucks 
node(around.pedestrian:25)[books]->.shops;

// Get bars in the 20m around found books shops
node(around.shops:20)[amenity=bar]->.bar;

(.bar;);

out;

Bar

Flag>

Flag #

BZHCTF{espitchupitos}



BreizhCTF 2023 - This article is part of a series.
Part 2: This Article