jeudi 20 décembre 2007

[WEB PENTESTING] Be sure that your website is "secure"!

Quand il s'agit de tests d'intrusion externes, nous nous retrouvons souvent face à un serveur WEB en tant que point d'entrée. Par exemple, imaginez que vous deviez auditer la société Suisjesecure, on vous donnera certainement l'adresse IP publique www.suisjesecure.com comme seule et unique information (du moins, s'il s'agit d'un test en aveugle). Si un tel test demande de nombreuses étapes (de la prise d'information à la récupération de données sensibles ou la prise de contrôle d'une partie du réseau), les failles repérées le plus fréquemment sont de type XSS (Cross Site Scripting) ou SQL Injection. Pour cela, nous allons voir comment Firefox peut devenir notre allié pour autmatiser ce genre de tâches.

Installation des extensions :

Les extensions en question sont XSS-me et SQL inject-me de la suite Exploit-me. Comme leur nom l'indique, le premier teste les vulnérabilités de type Cross Site Scripting d'un site tandis que le second teste les failles de type injections SQL.
  • Commençons par télécharger les modules XSS-me et SQL inject-me (issus donc de la suite Exploit-me de la société SecurityCompass) ;
  • Ensuite, installer les modules en les ouvrant simplement avec votre navigateur Firefox ;
  • Une fois terminé, vous n'avez plus qu'à redémarrer le navigateur ;
  • C'est tout !
Mise en oeuvre :

Tout aussi simplement, nous allons testé chacun de ses composants. Avant cela, nous pourrons utiliser 0, 1 ou les extensions en fonction du site testé. En effet, en amont, nous devrions regarder si :

a) Le site peut être vulnérable aux attaques de type XSS (présence de scripts, zones de saisie, ...) . Ce point pourra être vérifié en naviguant sur le site, tout simplement ;
b) Le site nécessite l'utilisation d'un base de données. Ceci sera sûrement le cas s'il s'agit d'un site marchand par exemple. Nous pourrons le vérifier aussi avec un scanner de ports comme nmap pour effectuer nos vérifications et même, déterminer le type de la base de données (MySQL, Oracle, PostgreSQL, ...).

En fonction des réponses, nous utiliserons les composants plausibles (inutile de faire du bruit pour rien ;)

Supposons que suisjesecure.com est potentiellement vulnérable aux deux types d'attaques.

1/ XSS-me

Pour utiliser le module, nous nous rendons dans le menu de Firefox : Outils > XSS ME.
Nous pouvons commencer par configurer le composant. Il faut savoir que nous pourrons lancer ensuite soit tous les tests disponibles, soit les X top attaques (X = 9 par défaut). Dans le panneau de configuration, nous pouvons d'une part modifier la valeur de X et d'autre par ajouter ou supprimer des tests d'attaque XSS dans la liste mise à disposition comme nous le montre le premier fond d'écran.
Ensuite, nous pouvons configurer les champs à tester et les tests à exécuter dans l'interface du module comme le montre le deuxième fond d'écran.Nous choisissons de lancer les "top attack" .... résultats :
Pas de chance, tous les tests ont été passés avec succès. Alors tentons cette fois avec les failles de type SQL injections.

2/SQL inject-me

Exactement de la même façon, nous pouvons configurer le composant dans le menu de firefox, puis dans l'interface, une fois le modu lancé. Nous sommes prêts, lançons les tests !

Cette fois, nous voyons quatre tests qui n'ont pas réussis. Des failles ? Regardons plus en détail ?

L'étape suivante est donc d'analyser les résultats et de vérifier la possibilité d'exploiter les failles.

Pour conclure :

Si ces deux composants devraient apporter un maximum d'information dans de nombreux cas, il ne faut pas oublier qu'il existe tout un panel d'attaques ciblant un site WEB. Par conséquent, afin d'être suffisamment exhaustif lors d'un test d'intrusion externe, nous devrons rester rigoureux dans notre démarche et tester les autres types de vulnérabilités (ex : contrôle d'accès).
Aussi, dans le cas d'applications WEB spécifiques, il se peut qu'une commande elle-même spécifique existe. Dans ce cas, elle ne figure pas forcément dans la liste des tests proposés et nous pourrions alors passer à côté d'une faille pouvant être critique. Par exemple, si la base n'a pas été mise à jour avec des vulnérabilités récentes ou si l'application en question n'est tout simplement pas prise en compte. Bref, la vigilance reste donc de vigueur...
Locations of visitors to this page