* 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).
Si vous avez trouvé une **inclusion de fichier local** même si vous **n'avez pas de session** et que `session.auto_start` est `Off`. Si **`session.upload_progress.enabled`** est **`On`** et que vous fournissez **`PHP_SESSION_UPLOAD_PROGRESS`** dans les données **multipart POST**, PHP va **activer la session pour vous**.
Notez que grâce à **`PHP_SESSION_UPLOAD_PROGRESS`**, vous pouvez **contrôler les données à l'intérieur de la session**. Ainsi, si vous incluez votre fichier de session, vous pouvez inclure une partie que vous contrôlez (comme un shellcode PHP, par exemple).
Bien que la plupart des tutoriels sur Internet recommandent de définir `session.upload_progress.cleanup` sur `Off` à des fins de débogage, la valeur par défaut de `session.upload_progress.cleanup` en PHP est toujours `On`. Cela signifie que votre progression de téléchargement dans la session sera nettoyée dès que possible. Il s'agit donc d'une **condition de course**.
Dans le [**CTF original**](https://blog.orange.tw/2018/10/) où cette technique est commentée, il ne suffisait pas d'exploiter la condition de course, mais le contenu chargé devait également commencer par la chaîne `@<?php`.
En raison du paramètre par défaut de `session.upload_progress.prefix`, notre **fichier SESSION commencera par un préfixe ennuyeux**`upload_progress_` tel que : `upload_progress_controlledcontentbyattacker`
Le truc pour **supprimer le préfixe initial** était de **coder en base64 le payload 3 fois** et de le décoder ensuite via les filtres `convert.base64-decode`. Cela est dû au fait que lors du **décodage en base64, PHP supprime les caractères étranges**, donc après 3 fois, **seul** le **payload envoyé** par l'attaquant **restera** (et ensuite l'attaquant peut contrôler la partie initiale).
Plus d'informations dans l'article original [https://blog.orange.tw/2018/10/](https://blog.orange.tw/2018/10/) et l'exploit final [https://github.com/orangetw/My-CTF-Web-Challenges/blob/master/hitcon-ctf-2018/one-line-php-challenge/exp\_for\_php.py](https://github.com/orangetw/My-CTF-Web-Challenges/blob/master/hitcon-ctf-2018/one-line-php-challenge/exp\_for\_php.py)\
Un autre article dans [https://spyclub.tech/2018/12/21/one-line-and-return-of-one-line-php-writeup/](https://spyclub.tech/2018/12/21/one-line-and-return-of-one-line-php-writeup/)
* 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).