Verejne dostupný výpis phpinfo()
Čo to je
Na webe je verejne dostupný súbor (najčastejšie phpinfo.php alebo info.php), ktorý volá funkciu phpinfo(). Tá vypíše celú konfiguráciu PHP. Kontrolujeme, že odpoveď naozaj vyzerá ako výpis phpinfo(), nestačí nám samotné HTTP 200.
Prečo je to problém
Výpis útočníkovi ušetrí prácu s prieskumom:
- presná verzia PHP a zoznam načítaných modulov, podľa ktorých si vyberie zraniteľnosť,
- cesty na disku a nastavenia servera,
- premenné prostredia, v ktorých bývajú heslá k databáze alebo API kľúče, ak ich tam aplikácia odovzdáva.
Súbor nikto nezakladá úmyselne. Zostane tam po ladení alebo po inštalácii.
Ako to opraviť
Súbor zmažte
Najjednoduchšia a najlepšia oprava. Ak neviete, ktorý súbor to je, prehľadajte kód:
grep -rl "phpinfo(" /var/www --include=*.phpKeď ho potrebujete
Spúšťajte phpinfo() len z príkazového riadka alebo na lokálnom stroji. Na produkcii môžete funkciu vypnúť v php.ini:
disable_functions = phpinfoAlebo zablokujte typické názvy na úrovni servera (nginx):
location ~* /(phpinfo|info|test)\.php$ {
return 404;
}Ak bol výpis verejný
Považujte všetko, čo vo výpise bolo, za viditeľné cudzím ľuďom. Vymeňte heslá a kľúče, ktoré sa objavovali v premenných prostredia.