Writeup #Web 1 – Madame est servie

Blog 5.6.2011 1 Comment

Cette épreuve faisait appel aux web services de type REST (REpresentational State Transfert). Les challengers disposaient d’un dump wireshark dans lequel des appels avaient été effectué.

Après avoir fait le tri dans l’ensemble des trames, deux appels ressortaient :

  • GET /index.php/api/users
  • POST « token=Z2lubnk6Nzg0NTFiMjAxMDQ0ZTZlMzUxNTg1NWFjMGZlZjZhNGY= » /index.php/api/validate

Les résultats de ces appels étaient visibles dans les trames. Dans le premier cas la liste des utilisateurs était affichée, dans le second cas l’appel nous retourner « You must be admin… » :

Remarque : les appels dans mes screenshots sont effectués en local. Lors du Hacknowledge les appels étaient évidemment fait sur l’IP donnée dans le dump Wireshark

L’idée était de voir que le token était encodé en base64. Celui-ci étant réversible, le token Z2lubnk6Nzg0NTFiMjAxMDQ0ZTZlMzUxNTg1NWFjMGZlZjZhNGY= devenait ginny:78451b201044e6e3515855ac0fef6a4f

On remarque facilement qu’il s’agit du nom d’utilisateur suivi du mot de passe encodé en md5 (32 caractères), le couple étant séparé par deux points.

Il ne servait à rien de déchiffrer le mot de passe, l’objectif était juste de savoir comment le token était construit. Partant de ce principe il fallait utiliser le token d’un utilisateur ayant le flag admin à true. Malheureusement aucun utilisateur n’avait ce flag. Il fallait donc en créer un.

Les web services admettent communément 4 verbes : GET, POST, PUT et DELETE. Dans notre cas le verbe PUT servait à créer un utilisateur. Par exemple l’utilisateur toto avec le mot de passe toto, l’appel était :

L’utilisateur toto est désormais capable de valider le challenge. Il ne reste plus qu’à construire son token. En md5, toto donne f71dbe52628a3f83a77ab494817525c6.

On convertit toto:f71dbe52628a3f83a77ab494817525c6 en base64 et on obtient : dG90bzpmNzFkYmU1MjYyOGEzZjgzYTc3YWI0OTQ4MTc1MjVjNg==

On peut maintenant appeler la validation de l’épreuve avec ce token :

Le code source de l’épreuve et la base de données sont disponibles ici.

One Response to "Writeup #Web 1 – Madame est servie"

  1. ah là là le MD5, toujours autant utiliser malgré tout ce qu’on lui reproche !

Leave a Reply