Bonjour à tous,
Maintenant que notre vulnérabilité de remote code execution sur OPERA 10.62 est corrigée depuis plusieurs versions , nous pouvons enfin dévoiler quelques détails techniques à son sujet.
Le bug en question utilise notre Cross domain scripting / Cross site scripting d’OPERA 10.62 découvert par Jordi Chancel afin d’injecter du code dans les configuration d’opera (OPERA:CONFIG).
L’injection de code sur les configuration d’OPERA est cependant plus compliqué et donne un résultat plus aléatoire que l’injection de code sur un domaine tiers.
Pour une exploitation universelle ( ce qui reste possible avec se genre d’exploit ) il faudrait néanmoins calculer la vitesse de navigation des visiteurs pour définir au mieux le temps nécessaire pour stopper le chargement de la page puis injecter le code malicieux.
Les restriction DEP et ASLR ne sont pas d’actualité pour les vulnérabilité d’exécution de commande ce qui laisse se genre d’exploit relativement dangereux et dans certains cas plus fiable qu’une vulnérabilité de corruption dont les résultats sont souvent plus aléatoires.
La mise en œuvre de cette vulnérabilité est pourtant relativement simple , il suffit de définir un document.write() sur l’évenement OnLoad de la page web , d’y injecter le code nécessaire au rechargement de cette meme page ( RELOAD() ) pour que celle-ci mène à une redirection ( il faut utiliser un langage serveur dans le but de changer le contenu de la page par une redirection au rechargement ).
Pour finir il faut stopper le chargement après un certain laps de temps | setTimeout(« stop() »,XXXX) | et donc injecter le code aboutissant sur l’exécution de code arbitraire.