mirror of
https://github.com/carlospolop/hacktricks
synced 2025-01-08 11:18:52 +00:00
69 lines
6.1 KiB
Markdown
69 lines
6.1 KiB
Markdown
<details>
|
|
|
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
|
|
|
- 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) !
|
|
|
|
- Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
|
|
- Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
|
|
- **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)**.
|
|
|
|
</details>
|
|
|
|
|
|
## **Téléchargements de fichiers PHP**
|
|
|
|
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).
|
|
|
|
{% hint style="info" %}
|
|
**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.**
|
|
{% endhint %}
|
|
|
|
Le principal problème pour accéder au fichier est essentiellement de **deviner son nom (qui sera "aléatoire")**.
|
|
|
|
## Exploitation sous Windows
|
|
|
|
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 :
|
|
|
|
`<path>\<pre><uuuu>.TMP`
|
|
|
|
* 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** :
|
|
```
|
|
http://site/vuln.php?inc=c:\windows\temp\php<<
|
|
```
|
|
(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é.
|
|
|
|
## Exploitation GNU/Linux
|
|
|
|
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.
|
|
|
|
## Références
|
|
|
|
* [https://gynvael.coldwind.pl/?id=376](https://gynvael.coldwind.pl/?id=376)
|
|
* [https://gynvael.coldwind.pl/download.php?f=PHP\_LFI\_rfc1867\_temporary\_files.pdf](https://gynvael.coldwind.pl/download.php?f=PHP\_LFI\_rfc1867\_temporary\_files.pdf)
|
|
|
|
|
|
<details>
|
|
|
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
|
|
|
- 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) !
|
|
|
|
- Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
|
|
- Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
|
|
- **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)**.
|
|
|
|
</details>
|