File upload
Last updated
Last updated
Il est possible qu'un site émette des restrictions d'upload dans un répertoire du serveur bien précis et donc n'execute pas notre fichier. On peut tenter à l'aide d'une directory traversal d'upload notre fiichier dans un autre répertoire et voir si les même restriction sont appliquées.
Le fichier .htacess est un fichier de configuration des serveurs apache permettant d'autoriser ou non certaines extension de fichier ou bien mapper des extension Ă des types de fichiers.
Pour plus informations sur cette technique, consulter :
Aller voir ce site pour avoir la liste pour possiblement bypass l'extension du fichier. Pour le challenge sur Portswigger, le null byte suffisait :
Au lieu de faire implicitement confiance au Content-Type
spécifié dans une requête, des serveurs plus sécurisés tentent de vérifier que le contenu du fichier correspond bien à ce qui est attendu.
Dans le cas d'une fonction de téléchargement d'image, le serveur peut essayer de vérifier certaines propriétés intrinsèques d'une image, telles que ses dimensions. Si vous essayez de télécharger un script PHP, par exemple, il n'aura aucune dimension. Par conséquent, le serveur peut en déduire qu'il ne peut pas s'agir d'une image et rejeter le téléchargement en conséquence.
L'outils exifTools permet de génerer des webshell polyglot :
Pour le challenge de portswigger, j'ai ajouté des dimension pour lui faire croire que c'était une image :