Table of Contents
Résumé
Les interfaces administrateur présents dans l'application ou sur le serveur d'applications peuvent autoriser certains utilisateurs à entreprendre des activités privilégiés sur le site. Des tests doivent être conduits pour voir si et comment ces fonctionnalités privilégiées peuvent être utilisées par un utilisateur non autorisé ou standard.
Description
Une application peut nécessiter une interface administrateur pour permettre à un utilisateur privilégié d'accéder aux fonctionnalités qui peuvent apporter des changements à la façon dont le site fonctionne. Ces changements peuvent inclure:
- La manipulation des comptes utilisateurs
- La conception du site et la mise en page
- La manipulation des données
- Des changements de configuration
Dans de nombreux cas, ces interfaces sont généralement mis en œuvre avec peu de réflexion sur la manière de les séparer des utilisateurs habituels du site. Le test est destiné à découvrir ces interfaces administrateur et accéder à des fonctionnalités destinées aux utilisateurs privilégiés.
Test boîte noire
L'exemple qui suit décrit les vecteurs qui peuvent être utilisés pour tester la présence d'interfaces d'administration. Ces techniques peuvent aussi être utilisées pour tester des questions connexes, y compris une escalade de privilège, et sont décrites dans ce guide plus en détail:
Énumération des répertoires et des fichiers
Un interface d'administration peut être présent, mais pas visuellement à la disposition du testeur. Tenter de deviner le chemin de l'interface d'administration peut être aussi simple que demander: /Admin ou /administrator, etc. Un testeur peut également devoir identifier le nom du fichier de la page d'administration. L'utilisation du brute force par l'utilisation de pages identifiées peut donner accès à cet interface.
Commentaires et liens dans le code source
De nombreux sites utilisent le code commun qui est servi à tous les utilisateurs du site. En examinant toutes les sources envoyées au client, des liens vers des fonctionnalités administrateur peuvent être découverts et doivent donc être étudiés.
Étude de la documentation du serveur et de l'application
Si le serveur d'application ou l'application sont déployés dans leur configuration par défaut, il peut être possible d'accéder à l'interface d'administration en utilisant les informations de configuration décrite dans la documentation ou de l'aide. Les listes de mots de passe par défaut doivent être testées si un interface d'administration est trouvé et si les informations d'identification sont requises.
Ports de serveur altenatifs
Les interfaces d'administration peuvent écouter sur un autre port de l'hôte de l'application principale. Par exemple, l'interface d'administration de Apache Tomcat peut souvent être vu sur le port 8080.
Falsification de Paramètres
Un paramètre GET ou POST ou une variable cookie peut être nécessaire afin d'activer la fonctionnalité de l'administrateur. Par exemle la présence de champs cachés, tels que:
<input type="hidden" name="admin" value="no">
ou dans un cookie:
Cookie: session_cookie; useradmin=0
Une fois qu'une interface d'administration a été découvert, une combinaison des techniques ci-dessus peut être utilisée pour tenter de contourner l'authentification. Si cette tentative échoue, le testeur peut tenter une attaque en brute force. Dans un tel cas, le testeur doit être conscient du risque de verrouillage du compte d'administration si cette fonctionnalité est présente.
Test boîte grise
- Un examen plus détaillé du serveur et des composants d'application doit être entrepris pour assurer la sécurisation (les pages d'administration ne doivent pas être accessibles à tous grâce à l'utilisation de filtrage IP ou d'autres contrôles), et le cas échéant, vérifier que tous les composants n'utilisent ses informations d'identification ou des configurations par défaut.
- Le code source doit être examiné pour s'assurer que l'autorisation et l'authentification modèle assure une séparation claire des fonctions entre les utilisateurs normaux et les administrateurs de sites.
- Les fonctions des interfaces utilisateur communs et utilisateurs administrateurs doivent être examinées pour s'assurer qu'une distinction claire entre le dessin de telles fonctionnalités et les informations révélées par des fonctionnalités partagées.
