En dépit du contexte international morose, la vie continue.
Un mois sans écrire sur le forum : la faute à pas de temps.
☕ BLABLA #VDM
Aujourd'hui, je vais vous relater une étonnante découverte.
Hier 7h45, fredonnant du Vladimir Cosma, je gobe, café/clavier.
À peine arrivé qu'un rustre matinal m'assène d'un coups brutal d'UEFI BIOS
Un autre me questionne sur l'étude de protocoles, de plugins IDA permettant de ..
Hey.. hey.. c'est matinée "zen" les amis, ne me gâchez pas cette rare occasion.
Je dégaine un calepin miteux d'un tiroir, ma vieille "totolist" préférée:
03 février 2015 - suite observations, idée de poutrage MFF+NS→JS
Le gribouillis schématique est si neuneu que j'ose à peine essayer.
Si j'ai pris la peine de noter c'est qu'il y a anguille sous roche...
★ LE PLAN DE LA HONTE
[C] 200 ← { 2397(JS) } → 30x [S]
Lorsque le C (Client) fera une requête sur une ressource spécifique il devra répondre "OK" (200). Le S (Serveur) devra indiquer une redirection (30x). Un code JavaScript (JS) sera véhiculé en employant le codage de la RFC 2397 : "The "data" URL scheme"
Celui qui procède à différentes méthodes d'écritures directement via l'URL en codage recevra le message:
javascript: and data: URIs typed or pasted in the address bar are disabled to prevent social engineering attacks.
★ LAMENTABLES EXPÉRIMENTATIONS
Je démarre une VM sous Windows 7 Pro à jour, je télécharge et procède à
l'installation de la dernière version de Mozilla Firefox et j'en fais de même
avec la latest de NoScript. J'ai donc la configuration par défaut.
Côté serveur, c'est une distribution Linux dont l'httpd est un Nginx.
Une simple réponse forgée aurait suffit mais la flemme..
Je test l'idée du schéma et "WTF" .. 08h01, l'affaire fût torchée.
Les protections de NoScript ont été contournées avec succès.
En réseau local, ça fonctionne mais je connais la musique.
En conditions réelles via Internet : résultats identiques.
Il me faudra plus de temps pour créer des parades.
Aujourd'hui, 18h je fais tester le PoC à Malekal.
La journée se calme, 21h il est temps d'écrire.
Entre nous, je doute que cette faiblesse soit inconnue.
Il y a toujours des esprits plus vifs & malins que le vôtre.
★ PREUVE DE DÉBILITÉ
J'utilise le MIME "text/html" pour forger un code HTML.
Le code comprends une redirection pour nettoyer l'URL.
L'attaque est quasi-transparente à la vue de l'utilisateur.
Une astuce pour la rendre invisible existe mais bon - N/C.
Voici le stupide code inoffensif créé pour l'occasion.
Code : Tout sélectionner
<body onload="window.location='http://forum.malekal.com/search.php?keywords='+parseInt(201527).toString(16);">
Gardez en tête qu'il est possible de faire toutes sortes de choses bien moins amusantes!
DISCLAMER: J'accepte en mon âme et conscience vouloir cliquer sur ce lien potentiellement risible.
☑ OUI, JE SUIS UN COMIQUE
Si vous avez une redirection vers:
→ http://forum.malekal.com/search.php?keywords=31337
Vous gagnez le gros lot : VULNÉRABLE :þ
La preuve de faisabilité fonctionne sous Mozilla Firefox v35.0.1 + NoScript v2.6.9.14
Ces logiciels sont téléchargés et utilisés tels quels, les configurations ne sont pas modifiées.
★ BONUS STAGE
Visualiser la démonstration en vidéo
edit: Merci à malekal, tididu, siri_urz, A$$2♠, reika et gof.
La version actuelle est vulnérable, c'est désormais confirmé.
edit: L'oreillette qui bourdonne, retours sur tweets de fidèles acolytes.
The latest Tweets from Giorgio Maone (@ma1). Hacker, atheist, humanist, dad, mozillian, security breaker and builder, author of Firefox add-ons like NoScript and FlashGot. Palermo, Sicily, Italy.
It was an origin check regression happened in 2.6.9.12. Fixed in 2.6.9.15, Thank you. #direct
[ https://noscript.net/changelog ] v 2.6.9.15
=============================================================
+ Fixed regression in 2.6.9.12 causing data: URI documents
to be scripting-enabled ( thanks Gof for tweet )
=============================================================
Grazie mille per tutti, Giorgio Maone !
Quand à vous lecteurs, ne sortez pas sans NoScript.