🏁Panneaux d'administration
Dernière mise à jour
Dernière mise à jour
Afin d'accéder à un panneau d'administration, plusieurs méthodes d'offrent à nous:
Trouver des identifiants ou tokens dans un repo Github ou Gitlab.
Trouver une injection blind XSS
Passer par des ports ouverts potentiellement inconnus
Passer par de la falsification de requête
Trouver des identifiants ou tokens hardcodés dans le code source
Manipuler la réponse HTTP
Changer la méthode d'authentification
Exploiter une mauvaise configuration
Trouver des identifiants ayant fuités sur des sites tels que IntelX ou Dehashed
Github et Gitlab possèdent des dorks permettant de faire des recherches avancées sur leur moteur de recherche. Passer par ces dorks permet de ce fait de rechercher des mots clès et de cibler précisément la cible souhaitée.
Pour apprendre comment utiliser ces dorks, veuillez vous reporter à la section ci-dessous:*
Vous pourrez aussi retrouver des outils automatisées pouvant vous aider dans cette phase dans la section ci-dessous:
Passer par une blind XSS peut permettre notamment de voler le cookie de session de l'administrateur au moment où il consultera une ressource particulière telle que ces logs par exemple. Il est également courant dans les sites de vente en ligne notamment que les commentaires / feedback envoyés pour un produit doivent être validés par un administrateur ce qui en fait un point d'intérêt pour un attaquant souhaitant usurper la session d'un administrateur.
Formulaires de contact / feedback / commentaire
Sondage
Entrée de mot de passe
Chat / Forum
Application de ticketing
Description d'utilisateur
Nom d'utilisateur (puis reset de mot de passe)
Fonctionnalité "d'appel à un expert"
En-tête "User-Agent:" (Possibilité de Match & Replace de Burp Suite tel que Match=Votre user agent et Replace="><script src=lien vers xsshunter ou équivalent></script>)
Faire l'inventaire des ports ouverts pour une cible données en comptant domaine et sous-domaines peut parfois permettre de mettre la main sur des interfaces de connexion potentiellement oubliés et vieillissants pouvant être très facilement contournés soit par l'usage d'identifiant par défauts ou par des identifiants hardcodés etc...
Les étapes à suivre sont donc les suivantes:
Enumération de sous-domaines.
Scan de ports de la liste des sous-domaines.
Listage des interface de connexion.
Tester des wordlists de mots de passes simples / par défaut sur les formulaire de connexion.
Tenter de bypass l'authentification avec des SQLi, LDAP injection etc.
Tenter de trouver des identifiants hardcodés dans le code source.
Tenter de trouver des exploits pouvant vous permettre de passer au travers du mechanisme d'authentification.
Pour cela, on va dans un premier temps utiliser des outils tels que gobuster pour fuzz les repertoires du site cible et essayer d'accéder directement au répertoire souhaiter sans passer par celui s'occupant de l'authentification (Vulnérabilité présente notamment dans les sites très anciens).
Exemple:
On a une page de connexion à l'url "https://target.com/admin/" et on sait qu'il y a une nommée "control.php" à l'url "https://target.com/admin/dashboard/control.php" alors au lieu de passer par la première url on entre directement sur la page https://target.com/admin/dashboard/control.php.
Autre possibilité, falsifier la requête. Pour cela, il y a plusieurs façon de falsifier une requête et je vous invite à vous rendre dans la section ci-dessous pour en apprendre d'avantage:
L'analyse du code source peut également parfois permettre de découvrir des vulnérabilités dans les mécanismes d'authentification et/ou de trouver parfois même des identifiants, tokens, secrets, endpoints etc pouvant permettre d'avoir comme finalité l'accès au panneau d'administration de la cible.
Pour découvrir l'analyse statique, veuillez vous reporter à la section du même nom:
Changer la réponse HTTP de 403 à 200 peut dans certains cas permettre de faire croire au serveurs que nous avons le droit d'accéder au panneau d'administration alors même que nous ne nous somme pas authentifié.
Pour intercepter la réponse HTTP dans burp:
Proxy -> Options -> Intercept Server Responses