Publicznie dostępny wynik phpinfo()

Co to jest

Na stronie jest publicznie dostępny plik (najczęściej phpinfo.php lub info.php), który wywołuje funkcję phpinfo(). Wypisuje ona całą konfigurację PHP. Sprawdzamy, że odpowiedź naprawdę wygląda jak wynik phpinfo(), samo HTTP 200 nam nie wystarcza.

Dlaczego to problem

Wynik oszczędza atakującemu rozpoznanie:

Nikt nie zakłada tego pliku celowo. Zostaje po debugowaniu albo instalacji.

Jak to naprawić

Usuń plik

Najprostsza i najlepsza naprawa. Jeśli nie wiesz, który to plik, przeszukaj kod:

grep -rl "phpinfo(" /var/www --include=*.php

Gdy jest potrzebny

Uruchamiaj phpinfo() tylko z wiersza poleceń lub na lokalnej maszynie. Na produkcji można wyłączyć funkcję w php.ini:

disable_functions = phpinfo

Albo zablokować typowe nazwy na poziomie serwera (nginx):

location ~* /(phpinfo|info|test)\.php$ {
    return 404;
}

Jeśli wynik był publiczny

Zakładaj, że wszystko na stronie widzieli obcy. Wymień hasła i klucze, które pojawiały się w zmiennych środowiskowych.

Źródła