- Travaillez-vous dans une entreprise de **cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
- **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **Partagez vos astuces de piratage en soumettant des PR au [repo hacktricks](https://github.com/carlospolop/hacktricks) et au [repo hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
Le moteur **PHP**, lorsqu'il reçoit un paquet **POST** avec des fichiers codés **RFC 1867**, **crée** un ou plusieurs **fichiers temporaires** qui sont utilisés pour **stocker les données des fichiers téléchargés**. Un script PHP gérant les téléchargements de fichiers doit utiliser la fonction move\_uploaded\_file pour déplacer le fichier temporaire téléchargé à l'endroit souhaité (si le script nécessite que le fichier existe après sa terminaison). **Lorsque le script se termine, le moteur PHP supprime tous les fichiers temporaires** pour les fichiers qui ont été téléchargés (s'il en reste après la fin du script).
**Comme l'attaquant connaîtra généralement l'emplacement de ces fichiers temporaires, en cas de Local File Inclusion, il pourrait charger le fichier téléchargé et obtenir RCE.**
Pour générer le nom **aléatoire sous Windows**, PHP utilise la fonction **`GetTempFileName`**. En examinant la documentation, nous pouvons trouver l'explication suivante : La fonction GetTempFileName crée un nom de fichier temporaire de la forme suivante :
* Le chemin est `upload_tmp_dir` qui est normalement `C:\Windows\Temp`
* Le préfixe est généralement : "php"
* Le \<uuuu> est une valeur hexadécimale unique. Cependant :
* Seuls les 16 bits inférieurs du paramètre uUnique sont utilisés. Cela limite GetTempFileName à un maximum de 65 535 noms de fichiers uniques si les paramètres lpPathName et lpPrefixString restent les mêmes. **Il est possible de le forcer par la méthode brute.**
Comme nous l'avons vu, il est assez **facile** de **trouver** le **fichier temporaire dans les systèmes Windows**. Et cela va devenir plus facile car la force brute n'est pas nécessaire ici, grâce à une certaine particularité de FindFirstFile qui permet d'utiliser des masques (<<comme \* et> comme ?) dans les chemins LFI sur Windows. Grâce à cela, on peut former un **chemin d'inclusion comme celui-ci** :
(Dans certains cas, un masque plus spécifique peut être nécessaire, tel que `php1<<` ou `phpA<<`). Vous pouvez effectuer une attaque par force brute avec des masques plus spécifiques jusqu'à ce que vous trouviez votre fichier temporaire téléchargé.
La valeur aléatoire du nom de fichier est suffisamment bonne pour ne pas être prévisible ni attaquable par force brute. Pour plus d'informations, consultez les références.
- Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
- **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **Partagez vos astuces de piratage en soumettant des PR au [repo hacktricks](https://github.com/carlospolop/hacktricks) et au [repo hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.