Ah bah c'est du propre
Dernière mise à jour
Cet article vous a-t-il été utile ?
Dernière mise à jour
Cet article vous a-t-il été utile ?
Catégorie: Web Difficulté: - Flag: CYBN{W0w_qu31l_4udace_d3rriere_t0n_cl4v1er}
Ce challenge tourne sur un docker et n'est pas disponible
On nous demande de voler le compte admin, sur l'onglet Communauté on peut voir un message concernant l'inscription de celui-ci. En regardant la source HTML on voit quelque chose d'étrange : data-uuidtime="138902489469351933"
.
Cet attribut se retrouve également sur la page de notre compte, ici data-uuidtime="138902602591519150"
:
On peut également voir que notre cookie servant d'authentification est un uuid, ici 5dd841ae-7b2e-11ed-887d-02420a000708
. On devine rapidement le rapport entre ce uuid et l'attribut data-uuidtime :
En cherchant un peu sur le web les vulnerabilités concernant les uuid, on découvre que la version 1 des uuid est vulnérable. Ils sont générés à partir d'un timestamp et de l'adresse MAC de la machine :
Autrement dit comme on connaît le timestamp de l'administrateur grâce à data-uuidtime et que l'on connaît la fin du uuid grâce à notre propre compte, on peut forger celui de l'administrateur.
Pour faire cela on va dabord générer un uuid v1 grâce à Python en modifiant la fonction de la lib uuid. Pour ça je copie colle dans un autre fichier entièrement le fichier de la lib, voici les modification dans la fonction uuid1() :
On génère ensuite notre uuid :
On n'a plus qu'à remplacer les 2 dernières sections par celles de notre propre uuid d'authentification (qui était 5dd841ae-7b2e-11ed-887d-02420a000708
).
Le uuid 073cf7fd-7b14-11ed-7945-01d84137b4c7
devient alors 073cf7fd-7b14-11ed-887d-02420a000708
. On change notre cookie auth et l'on va dans l'onglet Mon compte :