Outils d'utilisateurs

Outils du Site


ndhquals2015:secureauth

Différences

Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.

Lien vers cette vue

ndhquals2015:secureauth [2015/04/05 14:35]
Spl3en créée
ndhquals2015:secureauth [2017/04/09 15:33] (Version actuelle)
Ligne 84: Ligne 84:
     http://download.redis.io/redis-stable/src/networking.c     http://download.redis.io/redis-stable/src/networking.c
  
-En remplaçant l'username par ''admin\x0A\x0D'', on obtient :+En remplaçant l'username par ''admin\x0A\x0D'' afin d'essayer de terminer la commande, on obtient :
  
     spl3en@box:~$ python SecureAuthClient.py      spl3en@box:~$ python SecureAuthClient.py 
Ligne 95: Ligne 95:
     [-] Bad password or authentification error... !     [-] Bad password or authentification error... !
  
-On note au passage le préfixe '':name''.+On note au passage le préfixe '':name'' qui a tenté d'être interprêté comme une deuxième commande.
  
-En essayant d'injecter des commandes, par exemple ''INFO'' en mettant dans l'username la valeur ''admin\x0A\x0DINFO\x0A\x0D'', le serveur nous renvoie :+En essayant d'injecter des commandes (http://redis.io/commands), par exemple ''INFO'' en mettant dans l'username la valeur ''admin\x0A\x0DINFO\x0A\x0D'', le serveur nous renvoie :
  
     spl3en@box:~$ python SecureAuthClient.py      spl3en@box:~$ python SecureAuthClient.py 
Ligne 109: Ligne 109:
     [-] Bad password or authentification error... !     [-] Bad password or authentification error... !
  
-Un grand nombre de commandes sont filtrées, mis à part la commande ''GET'', ce qui nous laisse supposer qu'elle est utilisée pour récupérer le username et password dans la base NoSQL.+La commande INFO n'est pas reconnue, et après de nombres tests, on remarque qu'un grand nombre de commandes sont filtrées, mis à part la commande ''GET''
 + 
 +On suppose donc qu'elle est utilisée pour récupérer le username et password dans la base NoSQL.
  
 Avec un peu d'imagination, on tente de recréer les requêtes qui sont faites pour récupérer le login et mot de passe côté serveur : Avec un peu d'imagination, on tente de recréer les requêtes qui sont faites pour récupérer le login et mot de passe côté serveur :
Ligne 118: Ligne 120:
 On essaye donc d'injecter ''admin:password\x0A\x0D'' dans l'username, ce qui nous donne : On essaye donc d'injecter ''admin:password\x0A\x0D'' dans l'username, ce qui nous donne :
  
-    username = GET admin:password\x0A\x0D:name +    username = GET admin:password\x0A\x0D:name (le :name n'est pas interprêté) 
-    password = GET admin:password\x0A\x0D:password+    password = GET admin:password\x0A\x0D:password (le :password n'est pas interprêté)
  
 Le serveur nous renvoie : Le serveur nous renvoie :
Ligne 134: Ligne 136:
 Comme attendu, le serveur affiche l'username que nous avons remplacé par son password. Nous obtenons donc le ''sha256(admin_password)'' qui est ''837a135ad3ccb1978f169aa62a62a028b76ec42b2284791bd4703421ec050529''. Comme attendu, le serveur affiche l'username que nous avons remplacé par son password. Nous obtenons donc le ''sha256(admin_password)'' qui est ''837a135ad3ccb1978f169aa62a62a028b76ec42b2284791bd4703421ec050529''.
  
-Pour rappel, le packet contenant le password est formé ainsi :+Pour rappel, le packet envoyé au serveur contenant le password est formé ainsi :
  
     packet = "AUTH %s|%s" % (username, sha256(sha256(authtoken).hexdigest() + challenge).hexdigest())     packet = "AUTH %s|%s" % (username, sha256(sha256(authtoken).hexdigest() + challenge).hexdigest())
ndhquals2015/secureauth.1428237316.txt.gz · Dernière modification: 2017/04/09 15:33 (modification externe)