Apprenez et pratiquez le piratage AWS :<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">[**Formation HackTricks AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">\
Apprenez et pratiquez le piratage GCP : <imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">[**Formation HackTricks GCP Red Team Expert (GRTE)**<imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">](https://training.hacktricks.xyz/courses/grte)
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop)!
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Partagez des astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
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 le **`PHP_SESSION_UPLOAD_PROGRESS`** dans les données **POST multipart**, PHP va **activer la session pour vous**.
Notez que avec **`PHP_SESSION_UPLOAD_PROGRESS`** vous pouvez **contrôler les données à l'intérieur de la session**, donc si vous incluez votre fichier de session, vous pouvez inclure une partie que vous contrôlez (par exemple un shellcode php).
Bien que la plupart des tutoriels sur Internet vous 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. Cela créera 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 de SESSION commencera par un préfixe ennuyeux**`upload_progress_` tel que : `upload_progress_controlledcontentbyattacker`
L'astuce pour **supprimer le préfixe initial** était de **encoder le payload en base64 3 fois** puis de le décoder via les filtres `convert.base64-decode`, cela est dû au fait que lors du **décodage en base64 PHP supprimera les caractères étranges**, donc après 3 fois **seul** le **payload****envoyé** par l'attaquant **restera** (et ensuite l'attaquant pourra 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/)
Apprenez et pratiquez le Hacking AWS :<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">[**Formation HackTricks AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">\
Apprenez et pratiquez le Hacking GCP : <imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">[**Formation HackTricks GCP Red Team Expert (GRTE)**<imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">](https://training.hacktricks.xyz/courses/grte)
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop)!
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Partagez des astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.