Blog d'un Éternel Geek

Planter Google Chrome simplement en ajoutant un NULL devant l'url

http://vivageek.com/data/images/secu/bugchrome.jpg

 

Andris Atteka a découvert un drôle de bug, qui affecte intégralement Chrome et qui plus est, reste encore valable au moment où j'écris mon article.

 

Comme l'auteur le souligne : "Malheureusement, aucune récompense n'a été attribuée, car cela ce bug a été considéré comme étant uniquement une vulnérabilité DOS. Quoi qu'il en soit, ce qui rend le logiciel sécurisé est beaucoup plus difficile que de trouver les questions en elle. Merci Google."

 

Donc, Google le radin n'a pas rétribué cette vulnérabilité, ni encore patchés. Pourtant, il fait crasher instantanément la plupart des versions de Google Chrome.

 

Il suffit pour cela d’intégrer un caractère NULL %%30%30 dans n’importe quelle URL.

 

Si vous placez l'URL avec l'extension NULL, sur un commentaire par exemple, en passant dessus vous aurez un beau plantage, il suffira alors de rafraîchir pour revenir à la normale.

 

Par contre, si vous envoyez l'URL directement dans votre navigateur. Chrome, là vous aurez un crash, et le navigateur vous demandera de relancer le service.

 

La faille

 

Déclaré par Atteka sur google : https://code.google.com/p/chromium/issues/detail?id=533361

 

VERSION

Chrome Version: 45.0.2454.93 m

Operating System: windows

 

Mais pourtant on à 30 30 et non des zéros ?

 

En effet, l'encodage précédent est relatif à un code hexadécimal pour bypasser la vulnérabilité et ainsi provoquer la faille. Ainsi, sur le tableau par exemple suivant, vous remarquez que 30 correspond au caractère 0.

 

Donc si l'on réécrivait ce payload, on aurait : %00, on récupère bien un NULL byte en sortie.

 

 

Comment ça marche ?

 

L'octet NULL injection est une technique d'exploitation active utilisée pour contourner les filtres de contrôle sanity dans l'infrastructure Web en ajoutant des caractères d'octet nul dans l'URL codée (c.% 00 ou 0x00 en hexadécimal) aux données fournies par l'utilisateur. Ce processus d'injection peut modifier la logique prévue de la demande et ainsi permettre comme ici de crasher le système qui n'arrive pas à comprendre cette instruction qui lui demande sans cesse de lire et de relire la même URL.

 

 

La plupart des applications web d'aujourd'hui sont développées en utilisant des langages de haut niveau tels que PHP, ASP, Perl et Java. Cependant, ces applications Web ont certains points qui nécessitent un traitement de code de haut niveau à l'échelle du système et ce processus est habituellement réalisé à l'aide de fonctions de «C / C ++. La nature diversifiée de ces techniques dépendantes a abouti à une classe d'attaque appelée «Octet injection Nul» ou attaque 'octet NULL Empoisonnements. En C / C ++, un octet nul représente le point de terminaison de chaîne ou caractère de délimitation qui signifie pour arrêter le traitement immédiatement la chaîne. Octets suivants le séparateur seront ignorés. Si la chaîne perd son caractère nul, la longueur d'une chaîne devient inconnue jusqu'à pointeur de mémoire se produit pour répondre octet suivant zéro. Cette ramification involontaire peut provoquer un comportement inhabituel et introduire des vulnérabilités dans le système ou l'application.

 

 

Dans des termes similaires, plusieurs langues de niveau supérieur traitent l'octet nul comme un espace réservé pour la longueur de la chaîne comme il n'a pas de signification particulière dans leur contexte. En raison de cette différence d'interprétation, des octets nuls peuvent être facilement injectés pour manipuler le comportement de l'application.

 

Les URL sont limitées à un ensemble de caractères US ASCII allant de 0x20 à 0x7E (Hex) ou 32 à 126 (décimal).

 

Cependant, la gamme mentionnée ci-dessus utilise plusieurs caractères qui ne sont pas autorisés, car ils ont une signification particulière dans le contexte du protocole HTTP. Pour cette raison, le système d'encodage URL a été introduit pour inclure des caractères particuliers dans l'URL en utilisant la représentation de caractères ASCII étendus. En matière d'octet nul, cela est représenté en tant que % 00 en hexadécimal. La portée d'une attaque d'octet nul commence là où les applications Web interagissent avec les routines actives 'C'est les API externes de l'O sous-jacent. Ainsi, ce qui permet à un attaquant de manipuler des ressources Web en lisant ou écrivant les fichiers en fonction des privilèges d'utilisateurs de l'application.

 

Dans notre cas cela évolue ainsi :

 

De ce fait, notre URL, qui est une juxtaposition de code binaire 01[…]10, lorsque chrome arrive en lecture de la plage concernée, se trouve dans une impasse puisqu'il ne peut lire le reste des binaires et donc lire la page en entier. Comme une boucle, elle retourne inlassablement au début des premiers encodages H T T P :[…]/ %%30%30 jusqu'à ce que chrome sature en mémoire (plus d'emplacement disponible) et s'arrête de fonctionner.

 

Atteka l'explique sur son blog : andrisatteka.blogspot.fr.

 

 

Comment me prémunir ?

 

Le bug ayant été signalé, je pense qu'il sera certainement patché bientôt. Sinon, en attendant, il suffit de passer sur Firefox, qui n'est pas atteint par cette faille.

 

On sait en plus après un communiqué de Firefox qu'il supportera bientôt les extensions chrome, raison de plus peut-être de changer de navigateur.

 

Vous désirez tester : Passer votre souris au dessus de l'url suivante, en passant par un navigateur Chrome, bien entendu. Vous verrez alors cette page :

 

http://vivageek.com/data/images/secu/bugcrhome.jpg

 

https://fr.wikipedia.org /%%30%30

 

Vous voulez le faire crasher (ne vous inquiétez pas, il suffira de redémarrer Chrome ensuite), alors tapé l'URL précédente dans votre navigateur.

 

Merci de m'avoir lu, à bientôt.






 Geek me     Je suis un Geek dans l'âme. 18 ans à silloner internet pour récolter des informations afin de comprendre son fonctionnement. Idéalement j'étudie également le comportement humain.

C'est afin de vous partager mes connaissances que j'ai ouvert ce blog alors je vous souhaite une bonne lecture.



À lire également


Écrire un commentaire

Votre adresse de messagerie ne sera pas publiée.

Quelle est la première lettre du mot xgsjp ? :