LFI2RCE Via compress.zlib + PHP_STREAM_PREFER_STUDIO + Path Disclosure
Last updated
Last updated
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
compress.zlib://
ve PHP_STREAM_PREFER_STDIO
compress.zlib://
protokolü kullanılarak açılan bir dosya, PHP_STREAM_PREFER_STDIO
bayrağı ile bağlantıya daha sonra gelen verileri aynı dosyaya yazmaya devam edebilir.
Bu, aşağıdaki gibi bir çağrının anlamına gelir:
Bir istek göndererek http://attacker.com/file adresini talep edecektir, ardından sunucu isteğe geçerli bir HTTP yanıtı ile yanıt verebilir, bağlantıyı açık tutabilir ve daha sonra dosyaya yazılacak ek veriler gönderebilir.
Bu bilgiyi php-src kodunun main/streams/cast.c kısmında görebilirsiniz:
Bu CTF önceki hile kullanılarak çözüldü.
Saldırgan, kurban sunucunun saldırganın sunucusundan bir dosya okuma bağlantısı açmasını sağlayacaktır compress.zlib
protokolünü kullanarak.
Bu bağlantı var olduğu sürece, saldırgan oluşturulan geçici dosyanın yolunu sızdıracaktır (sunucu tarafından sızdırılmıştır).
Bağlantı hala açıkken, saldırgan kontrol ettiği geçici dosyayı yükleyen bir LFI'yi istismar edecektir.
Ancak, web sunucusunda <?
içeren dosyaların yüklenmesini önleyen bir kontrol vardır. Bu nedenle, saldırgan bir Yarış Koşulu istismar edecektir. Hala açık olan bağlantıda saldırgan, web sunucusu dosyanın yasaklı karakterleri içerip içermediğini kontrol ettikten SONRA PHP yükünü gönderecektir ama içeriğini yüklemeden ÖNCE.
Daha fazla bilgi için https://balsn.tw/ctf_writeup/20191228-hxp36c3ctf/#includer adresindeki Yarış Koşulu ve CTF açıklamasını kontrol edin.
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)