LFI2RCE via PHP_SESSION_UPLOAD_PROGRESS
Last updated
Last updated
Impara e pratica l'Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Impara e pratica l'Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Se hai trovato un Local File Inclusion anche se non hai una sessione e session.auto_start
è Off
. Se session.upload_progress.enabled
è On
e fornisci il PHP_SESSION_UPLOAD_PROGRESS
nei dati multipart POST, PHP abiliterà la sessione per te.
Nota che con PHP_SESSION_UPLOAD_PROGRESS
puoi controllare i dati all'interno della sessione, quindi se includi il tuo file di sessione puoi includere una parte che controlli (un php shellcode per esempio).
Sebbene la maggior parte dei tutorial su Internet ti consigli di impostare session.upload_progress.cleanup
su Off
per scopi di debug. L'impostazione predefinita di session.upload_progress.cleanup
in PHP è ancora On
. Ciò significa che il tuo progresso di upload nella sessione verrà pulito il prima possibile. Quindi questo sarà un Race Condition.
Nel CTF originale dove viene commentata questa tecnica, non era sufficiente sfruttare il Race Condition, ma il contenuto caricato doveva anche iniziare con la stringa @<?php
.
A causa dell'impostazione predefinita di session.upload_progress.prefix
, il nostro file di SESSION inizierà con un prefisso fastidioso upload_progress_
Come: upload_progress_controlledcontentbyattacker
Il trucco per rimuovere il prefisso iniziale era di base64codificare il payload 3 volte e poi decodificarlo tramite i filtri convert.base64-decode
, questo perché quando decodifichi in base64 PHP rimuoverà i caratteri strani, quindi dopo 3 volte solo il payload inviato dall'attaccante rimarrà (e poi l'attaccante può controllare la parte iniziale).
Maggiori informazioni nel writeup originale https://blog.orange.tw/2018/10/ e exploit finale https://github.com/orangetw/My-CTF-Web-Challenges/blob/master/hitcon-ctf-2018/one-line-php-challenge/exp_for_php.py Un altro writeup in https://spyclub.tech/2018/12/21/one-line-and-return-of-one-line-php-writeup/
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)