TL;DR #
Ce n’est pas la solution attendue, celle de l’auteur est disponible à la fin de cet article !
- On récupère trois numéros de téléphone permettant d’obtenir des informations sur un individu à partir des renseignements du FBI (Foutus Bretons Indépendantistes)
- En accédant au site du challenge, on soumet les numéros fournis pour obtenir les informations associées, et on découvre qu’ils appartiennent à la société
BurnerBZH
. - À l’aide d’un script Python, on récupère la liste des numéros appartenant à cette société et on identifie tout ceux ayant un propriétaire renseigné
- On teste les quatre numéros retournés en tant que flag, le numéro
0733891373
est celui qui était attendu
Informations du challenge #
Auteur | Drahoxx |
---|---|
Catégorie | Misc |
Description | Un homme très dangereux a remarqué que vous le surveilliez. Il s’est débarrassé de son ancien téléphone jetable et en a acheté un nouveau. Voici ses trois derniers numéros : 07.33.89.68.10, 07.33.89.67.24 et 07.33.89.12.14. À vous de trouver son nouveau numéro. Vous disposez des flux de renseignements du FBI (Foutus Bretons Indépendantistes). Format du flag : BZHCTF{<numéro>} , par exemple pour le numéro 01.23.45.67.89 , le flag sera BZHCTF{0123456789} . TOUS LES NUMÉROS DE TÉLÉPHONE DE CE CHALLENGE SONT FICTIONNELS |
Difficulté | Facile |
Points | 50 |
Résolutions | 102/118 |
Sources | https://github.com/BreizhCTF/breizhctf-2025/tree/main/misc/burner-phone/ |
URL | https://burnerphone.ctf.bzh/ |
misc/burner-phone |
Résolution du challenge #
En se rendant sur burnerphone.ctf.bzh, on y découvre une page avec différents champs dans lesquels il est indiqué d’entrer un numéro de téléphone.
On essaie donc avec le premier numéro fourni dans la description du challenge, à savoir 07.33.89.68.10
.
Cette requête permet de récupérer différentes informations sur le numéro :
- Le nom d’une entreprise
- Le dernier numéro appelé
- La dernière localisation connue
- Le propriétaire
- Le numéro du téléphone lié à ces informations
L’information clé dans ce JSON est celle de l’entreprise, on va pouvoir récupérer l’ensemble des numéros qu’elle possède en utilisant la requête suivante :
{
"company": "BurnerBZH",
"phone_numbers": [
"0733890047",
"0733890048",
"0733890049",
"0733890051",
"0733890059",
"0733890091",
"0733890094",
"0733890108",
"0733890117",
"0733890177",
"0733890201",
...
"0733899994"
]
}
On ne va évidemment pas récupérer manuellement les informations complètes de ces numéros, ça serait bien trop long puisqu’il y en a 927. Pour cela, on va utiliser le script Python suivant.
import sys
import requests
if len(sys.argv) < 2:
print("Usage: solve.py <url>")
print("Example: python3 solve.py http://127.0.0.1:80")
exit(1)
url = sys.argv[1]
phone_numbers = requests.get(f"{url}/app/company/get-phones/BurnerBZH").json()["phone_numbers"]
for phone_number in phone_numbers:
response = requests.get(f"{url}/app/infos/{phone_number}").json()
if response.get("owner") != "None":
print(response.get("phone_number"))
python3 script.py https://burnerphone.ctf.bzh
0733891214
0733891373
0733896724
0733896810
On récupère 4 numéros de téléphone pour lesquels le propriétaire est différent de None
. En essayant chacun de ceux-ci en tant que flag, le numéro 0733891373
fonctionne.
Le flag est donc BZHCTF{0733891373}
.
Solution attendue par le créateur du challenge #
Writeup #
En essayant les numéros de téléphone sur les différents champs, on se rend compte que le “Crack de mot de passe” nous indique le password “Ashley” pour les 3 numéros fournis.
Ces mêmes numéros semblent appartenir à la société “BurnerBZH” (d’après le formulaire “Société téléphonique”), dont les blocs de numéros sont compris dans [0733890000:0733899999] (d’après le formulaire “Information sur la société téléphonique”).
Un petit bruteforce du formulaire “Crack de mot de passe” sur les 10000 numéros de la société à l’aide d’un script nous permet de récupérer différents mots de passe, dont 4 occurences du mot de passe “Ashley”:
- 0733891214
- 0733891373
- 0733896724
- 0733896810
Le numéro manquant est donc 0733891373
, ce qui nous donne le flag BZHCTF{0733891373}
.