Veřejně dostupný výpis phpinfo()

Co to je

Na webu je veřejně dostupný soubor (nejčastěji phpinfo.php nebo info.php), který volá funkci phpinfo(). Ta vypíše celou konfiguraci PHP. Kontrolujeme, že odpověď opravdu vypadá jako výpis phpinfo(), nestačí nám samotné HTTP 200.

Proč je to problém

Výpis útočníkovi ušetří práci s průzkumem:

Soubor nikdo nezakládá z úmyslu. Zůstane tam po ladění nebo po instalaci.

Jak to opravit

Soubor smažte

Nejjednodušší a nejlepší oprava. Pokud nevíte, který soubor to je, projděte kód:

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

Když ho potřebujete

Spouštějte phpinfo() jen z příkazové řádky nebo na lokálním stroji. Na produkci můžete funkci vypnout v php.ini:

disable_functions = phpinfo

Nebo zablokujte typické názvy na úrovni serveru (nginx):

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

Pokud byl výpis veřejný

Považujte všechno, co ve výpisu bylo, za viditelné cizím lidem. Vyměňte hesla a klíče, které se objevovaly v proměnných prostředí.

Reference