Lundi 7 décembre 2015 un ami m’a donne un lien vers htmltowordpress.io juste pour tester l’outil de conversion.
htmltowordpress.io est un service capable de convertir facilement un site complet en HTML en un thème WordPress, en 1 étape !
Donc j’ai jeté un oeil de suite et me suis posé la question du comment le parsing a bien pu être fait pour éviter les failles.
Try again.
Mes premiers tests ont été de simplement faire apparaitre des boites d’alert en JavaScript, mais cela ne peut pas compter comme une faille puisque quand htmltowordpress.io vous montre le résultat de la conversion, cela est fait dans une installation de WordPress tout propre, mise à jour, avec un utilisateur nommé “friend” en rôle admin.
Cette installation a le minimum de sécurité requise qui interdit quiconque d’ajouter un plugin ou un thème, meme d’en mettre un à jour et aussi de les éditer, parfait.
Puis j’ai essayé d’ajouter du code PHP dans mon HTML en utilisant <?php
or <?/**/php
or <?<script>php
vous savez, au cas où il y aurait un problème de replace avec ces tags et mots.
You win
Et il y en avait un. UN seul problème de mauvais pattern de remplacement qui a mené à une exécution de code PHP en utilisant un fichier HTML, je l’ai trouvé :
<script><?= ABSPATH; ?></script>
Les short tags de PHP étaient autorisés mais SEULEMENT si contenus dans un tag SCRIPT. Voici une courte vidéo de démo en live :
Ceci va juste afficher le chemin de la constante WordPress ABSPATH
, mais vous imaginez bien que vous pouvez utiliser tout ce que vous voulez et cela peut être très très dangereux. Bien sûr qu’écrire du code PHP dans un site EST un danger.
Game Over
Dans l’heure qui a suivi ma découverte et mes tests, j’ai contacté l’équipe de htmltowordpress.io qui a elle aussi réagit vite car ils ont corrigé la faille en quelques heures !
Maintenant htmltowordpress.io est encore plus sécurisé qu’hier ! Essayez ce service maintenant, allez sur htmltowordpress.io!