
PoC pour Responsive Filemanager < 9.12.0 contournant les restrictions de téléchargement menant à RCE
PoC pour Responsive Filemanager < 9.12.0 contournement des restrictions de téléchargement menant à une RCE
Lors du téléchargement d'un nouveau fichier, nous passons par la fonction fix_filename : https://github.com/trippo/ResponsiveFilemanager/blob/9a7411f3eab3b7d8e2c78dcf40b4325bde2c548d/filemanager/upload.php#L112
Dans cette fonction, nous avons la fonction strip_tags qui recherche les crochets et les supprime : https://github.com/trippo/ResponsiveFilemanager/blob/9a7411f3eab3b7d8e2c78dcf40b4325bde2c548d/filemanager/include/utils.php#L581
Ainsi, nous pouvons envoyer un fichier avec un nom comme shell.php<.txt, qui sera renommé en shell.php à cause de la fonction strip_tags.
Mais il y a une vérification supplémentaire du type de fichier par son contenu :
Donc, nous ne pouvons pas télécharger un shell php classique <?php system($_GET['c']);?>. Mais nous pouvons faire une petite astuce : la fonction get_extension_from_mime fonctionne en se basant sur les premiers caractères du fichier. Ainsi, si nous commençons notre charge utile par plusieurs caractères 'a', elle peut être détectée comme type txt.
shell.php<.txt

