LFI2RCE via PHP_SESSION_UPLOAD_PROGRESS
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Si encontraste una Inclusión de Archivos Local incluso si no tienes una sesión y session.auto_start
está Desactivado
. Si session.upload_progress.enabled
está Activado
y proporcionas el PHP_SESSION_UPLOAD_PROGRESS
en datos multipart POST, PHP activará la sesión para ti.
Note que con PHP_SESSION_UPLOAD_PROGRESS
puedes controlar datos dentro de la sesión, así que si incluyes tu archivo de sesión puedes incluir una parte que controlas (un php shellcode por ejemplo).
Aunque la mayoría de los tutoriales en Internet te recomiendan establecer session.upload_progress.cleanup
en Off
para fines de depuración. El valor predeterminado de session.upload_progress.cleanup
en PHP sigue siendo On
. Esto significa que tu progreso de carga en la sesión será limpiado lo antes posible. Así que esto será una Condición de Carrera.
En el CTF original donde se comenta esta técnica, no era suficiente explotar la Condición de Carrera, sino que el contenido cargado también necesitaba comenzar con la cadena @<?php
.
Debido a la configuración predeterminada de session.upload_progress.prefix
, nuestro archivo de SESIÓN comenzará con un prefijo molesto upload_progress_
Tal como: upload_progress_controlledcontentbyattacker
El truco para eliminar el prefijo inicial fue base64encode el payload 3 veces y luego decodificarlo a través de los filtros convert.base64-decode
, esto se debe a que cuando decodificas en base64 PHP eliminará los caracteres extraños, así que después de 3 veces solo el payload enviado por el atacante permanecerá (y luego el atacante puede controlar la parte inicial).
Más información en el artículo original https://blog.orange.tw/2018/10/ y el exploit final https://github.com/orangetw/My-CTF-Web-Challenges/blob/master/hitcon-ctf-2018/one-line-php-challenge/exp_for_php.py Otro artículo en https://spyclub.tech/2018/12/21/one-line-and-return-of-one-line-php-writeup/
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)